国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java8使用stream流給List<Map<String,Object>>分組(多字段key)

這篇具有很好參考價(jià)值的文章主要介紹了Java8使用stream流給List<Map<String,Object>>分組(多字段key)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Java8使用stream流給List<Map<String,Object>>根據(jù)字段key分組

一、項(xiàng)目場(chǎng)景:
從已得到的List集合中,根據(jù)某一元素(這里指map的key)進(jìn)行分組,篩選出需要的數(shù)據(jù)。
如果是SQL的話則使用group by直接實(shí)現(xiàn),代碼的方式則如下:
使用到stream流的Collectors.groupingBy()方法。

二、代碼實(shí)現(xiàn)
1、首先將數(shù)據(jù)add封裝到List中,完成數(shù)據(jù)準(zhǔn)備。

//groupList用于庫(kù)-表分組的list,減少jdbc連接時(shí)間
List<Map<String,Object>> groupList = new ArrayList<>();
Map<String,Object> map1 = new HashMap<>();
map.put("name","張三");
map.put("age",20);
Map<String,Object> map2 = new HashMap<>();
map.put("name","李四");
map.put("age",20);
//excel每行的值存入集合中
groupList.add(map1);
groupList.add(map2);

2、然后按照name屬性進(jìn)行分組(單字段),使用stream流分組

//分組判斷,stream流
Map<String, List<Map<String, Object>>> listMap =
		groupList.stream().collect(
			Collectors.groupingBy(item -> item.get("name").toString())
		);

··按照name,age屬性進(jìn)行分組(多字段),使用stream流分組

//分組判斷,stream流
Map<String, List<Map<String, Object>>> listMap =
		groupList.stream().collect(
			Collectors.groupingBy(item -> item.get("name").toString()+"|"+item.get("age"))
		);

3、遍歷結(jié)果,輸出查看
得到Map<String, List<Map<String, Object>>>,
key是你分組的字段,value分組下對(duì)應(yīng)的值。
也就是group by的效果。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-434494.html

for (String groupKey : listMap.keySet()) {
	//分組key
	System.out.println("分組Key: "+groupKey);
	System.out.println("分組Key的value: "+listMap.get("groupKey"));
}

到了這里,關(guān)于Java8使用stream流給List<Map<String,Object>>分組(多字段key)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JSON轉(zhuǎn)換List<Map<String, Object>>、Map<String, Object>

    廢話就不說(shuō)了 早上10點(diǎn)研究到現(xiàn)在 獲取redis的JSON字符串 String getPalletListNew = redisService.getRedis(“getPalletListNew”, abroad + “” + goodsLevel + “” + startPort + “” + destinationPort + “” + maxTon + “” + minTon); 轉(zhuǎn)換MapString,Object public MapString, Object jsonToMap(String json){ MapString, Object map = new

    2024年02月20日
    瀏覽(21)
  • Java8特性,Stream流的使用,收集成為map集合

    Java 8引入了Stream API,這是Java集合操作的一個(gè)重大改進(jìn)。Stream API提供了一種高效且易于使用的處理數(shù)據(jù)的方式。 Stream是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。注意:Stream自己不會(huì)存儲(chǔ)元素,它不會(huì)改變?cè)磳?duì)象,反而它的操作會(huì)返回一個(gè)全新的Strea

    2024年04月22日
    瀏覽(100)
  • Java8使用Stream流實(shí)現(xiàn)List列表簡(jiǎn)單使用

    Java8使用Stream流實(shí)現(xiàn)List列表簡(jiǎn)單使用

    ?? 目錄 1.forEach() 2.filter(T - boolean) 3.findAny()和findFirst() 4.map(T - R) 和flatMap(T - stream) 5.distinct() 去重 6.limit(long n)和skip(long n)? 7.anyMatch(T - boolean) 8.allMatch(T - boolean) 9.noneMatch(T - boolean) Java8提供了Stream(流)處理集合的關(guān)鍵抽象概念,Stream 使用一種類似用 SQL 語(yǔ)句從數(shù)據(jù)庫(kù)查詢數(shù)

    2023年04月27日
    瀏覽(26)
  • Java8-使用stream.sorted()對(duì)List排序

    1.流的定義 Stream 中文稱為 “流”,通過(guò)將集合轉(zhuǎn)換為這么一種叫做 “流” 的元素序列,通過(guò)聲明性方式,能夠?qū)现械拿總€(gè)元素進(jìn)行一系列并行或串行的操作! 如果流中的元素的類實(shí)現(xiàn)了 Comparable 接口,即有自己的排序規(guī)則,那么可以直接調(diào)用 sorted() 方法對(duì)元素進(jìn)行排

    2024年02月16日
    瀏覽(93)
  • JAVA8中l(wèi)ist.stream()的一些簡(jiǎn)單使用

    為函數(shù)式編程而生。對(duì)stream的任何修改都不會(huì)修改背后的數(shù)據(jù)源,比如對(duì)stream執(zhí)行過(guò)濾操作并不會(huì)刪除被過(guò)濾的元素,而是會(huì)產(chǎn)生一個(gè)不包含被過(guò)濾元素的新stream。 stream上的操作并不會(huì)立即執(zhí)行,只有等到用戶真正需要結(jié)果的時(shí)候才會(huì)執(zhí)行。 stream只能被使用一次,一旦遍歷

    2024年02月03日
    瀏覽(23)
  • List<Map<String, Object>>

    ListMapString, Object 是一個(gè)Java數(shù)據(jù)結(jié)構(gòu),它是一個(gè)列表(List),其中每個(gè)元素都是一個(gè)Map。在每個(gè)Map中,鍵(key)是字符串(String),值(value)可以是任何對(duì)象(Object)。 這種數(shù)據(jù)結(jié)構(gòu)通常用于存儲(chǔ)和處理一組相關(guān)的數(shù)據(jù)記錄。例如,可以使用ListMapString, Object 存儲(chǔ)數(shù)據(jù)庫(kù)查詢結(jié)果,其

    2023年04月21日
    瀏覽(24)
  • <List<Map<String,Object>>>Map中多個(gè)屬性轉(zhuǎn)成List Map

    舉例: 原始數(shù)據(jù) :{001=張三, 002=李四, 003=王五, 004=趙六} 目標(biāo)數(shù)據(jù) : {value=張三, key=001} {value=李四, key=002} {value=王五, key=003} {value=趙六, key=004} 輸出: 單獨(dú)封裝工具類案例:

    2024年02月11日
    瀏覽(43)
  • List<Map<String, Object>> 轉(zhuǎn)List<T> list map對(duì)象轉(zhuǎn)list對(duì)象

    List<Map<String, Object>> 轉(zhuǎn)List<T> list map對(duì)象轉(zhuǎn)list對(duì)象

    我們?cè)谔幚頂?shù)據(jù)的時(shí)候,經(jīng)常用到map對(duì)象轉(zhuǎn)java對(duì)象。 要轉(zhuǎn)換的對(duì)象 pom文件JSON包 : 如果此篇文章有幫助到您, 希望打大佬們能 關(guān)注 、 點(diǎn)贊 、 收藏 、 評(píng)論 支持一波,非常感謝大家! 如果有不對(duì)的地方請(qǐng)指正!!! 參考1 參考2

    2024年02月13日
    瀏覽(27)
  • Java8 Stream 之groupingBy 分組講解

    本文主要講解:Java 8 Stream之Collectors.groupingBy()分組示例 Collectors.groupingBy() 分組之常見(jiàn)用法 功能代碼: /** ?? ? * 使用java8 stream groupingBy操作,按城市分組list ?? ? */ ?? ?public void groupingByCity() { ?? ??? ?MapString, ListEmployee map = employees.stream().collect(Collectors.groupingBy(Employee::getCi

    2024年02月13日
    瀏覽(25)
  • Java8的stream之groupingBy()分組排序

    Java8的stream之groupingBy()分組排序

    groupingBy()是Stream API中最強(qiáng)大的收集器Collector之一,提供與SQL的GROUP BY子句類似的功能。 需要指定一個(gè)屬性才能使用,通過(guò)該屬性執(zhí)行分組。我們通過(guò)提供功能接口的實(shí)現(xiàn)來(lái)實(shí)現(xiàn)這一點(diǎn) - 通常通過(guò)傳遞lambda表達(dá)式。 TreeMap默認(rèn)按照key升序排序,collectPlan.descendingMap()可以進(jìn)行降序排

    2024年02月12日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包