內存group by分組
要求將一批數據,按照SQL的group by方式,進行內存分組
內存分組
Map<String, List<Object>> cacheGroup = new HashMap<>();
//代碼內存分組(pass_mchnt_cd,business_partner_reference,cart_no)
for (Object tf : fi093dtlL6msRemap) {
//進行分組
String groupKey = tf.getPassMchntCd() + tf.getBusinessPartnerReference() + tf.getCartNo();
if (cacheGroup.containsKey(groupKey)) {
//執行添加動作
List<Object> oldData = cacheGroup.get(groupKey);
oldData.add(tf);
cacheGroup.put(groupKey, oldData);
} else {
//插入新元素
List<Object> newData = new LinkedList<>();
newData.add(tf);
cacheGroup.put(groupKey, newData);
}
}
分組結果遍歷
Set<Map.Entry<String, List<Object>>> entrySet = cacheGroup.entrySet();
Iterator<Map.Entry<String, List<Object>>> iterator = entrySet.iterator();
List<Object> sum093dtlL6mItems = new LinkedList<>();
String currentDt = DateUtils.getCurrentDay();//yyyyMMdd
while (iterator.hasNext()) {
Map.Entry<String, List<Object>> entry = iterator.next();
String groupKey = entry.getKey();
List<Object> list = entry.getValue();
//TODO something...
}
學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流羣,羣號碼:543120397 我們一起學Java!