內存group by分組

內存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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章