您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(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 ? 0 : (Integer) item1.get("pzListNo"); Integer pzListNo2 = item2.get("pzListNo") == null ? 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è)資訊頻道,感謝大家的支持。
免責(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)容。