溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用jdk1.8實(shí)現(xiàn)將list根據(jù)指定的值去分組

發(fā)布時(shí)間:2020-10-28 17:02:06 來源:億速云 閱讀:647 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)使用jdk1.8實(shí)現(xiàn)將list根據(jù)指定的值去分組,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Map<String, List<CommentQuery>> commentList = list.stream().collect(Collectors.groupingBy(CommentQuery::getNewsId));
for (Map.Entry<String, List<CommentQuery>> entry : commentList.entrySet()) {
String key = HOT_LIST_KEY + entry.getKey();
if (entry.getValue().isEmpty()) {
stringRedisTemplate.opsForValue().set(key, "");
} else {
Gson gson = new Gson();
String json = gson.toJson(entry.getValue());
//先刪除redis數(shù)據(jù)然后在插入新的牛評數(shù)據(jù)
stringRedisTemplate.delete(key);
stringRedisTemplate.opsForValue().set(key, json);
stringRedisTemplate.expire(key, 1, TimeUnit.DAYS);
}
}

補(bǔ)充知識:java8 list集合利用stream 根據(jù)元素的指定屬性進(jìn)行分組統(tǒng)計(jì)

需求是對指定集合的學(xué)生信息,根據(jù)班級分組統(tǒng)計(jì)每個(gè)班所有學(xué)生的憑證數(shù)量。

    List<HashMap<String, Object>> result = new ArrayList<>(); 
    List<HashMap<String, Object>> list = getList(countVo); 
    list.stream()
        .collect(Collectors.groupingBy(map -> map.get("className"), Collectors.toList()))
        .forEach((key, groupMap) -> {
            HashMap<String, Object> stringObjectHashMap = groupMap.stream().reduce((item1, item2) -> {
            Integer pzListNo = item1.get("pzListNo") == null &#63; 0 : (Integer) item1.get("pzListNo");
            Integer pzListNo2 = item2.get("pzListNo") == null &#63; 0 : (Integer) item2.get("pzListNo");
 
            item1.put("pzListNo", pzListNo + pzListNo2);
            return item1;
          }).get();
 
          result.add(stringObjectHashMap);
        }); 
 
    return result;

看完上述內(nèi)容,你們對使用jdk1.8實(shí)現(xiàn)將list根據(jù)指定的值去分組有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI