一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 在Java 8中將List轉(zhuǎn)換為Map對象方法

在Java 8中將List轉(zhuǎn)換為Map對象方法

2021-06-14 13:53banq Java教程

這篇文章主要介紹了在Java 8中將List轉(zhuǎn)換為Map對象方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

假設(shè)有一個員工對象:

?
1
2
3
4
5
6
7
<b>public</b> <b>class</b> employee {
  <font><i>// member variables</i></font><font>
  <b>private</b> <b>int</b> empid;
  <b>private</b> string empname;
  <b>private</b> <b>int</b> empage;
  <b>private</b> string empdesignation;
</font>

將這個員工對象放入list集合,如何轉(zhuǎn)為map? 首先要明確map的key是什么?

1. 比如式樣員工對象的empid作為key,值是員工姓名:

?
1
2
3
4
<font><i>// convert list<employee> to map<empid, empname> using java 8 streams</i></font><font>
 map<integer, string> mapofemployees = employees.stream().collect(
    collectors.tomap(e -> e.getempid(),e -> e.getempname()));
</font>

2.map的key是empid,整個對象為map的值:

?
1
2
3
4
<font><i>// convert list<employee> to map<empid, empname> using java 8 streams</i></font><font>
map<integer, employee> mapofemployees = employees.stream().collect(
        collectors.tomap( e -> e.getempid(), e -> e));
</font>

3. 如果list中有重復(fù)的empid,映射到map時,key時不能重復(fù)的,如何解決?

默認(rèn)情況時會拋重復(fù)異常,為了克服illegalstateexception重復(fù)鍵異常,我們可以簡單地添加一個

binaryoperator方法到tomap()中,這也稱為合并功能,比如如果重復(fù),可以取第一個元素:

?
1
2
3
4
5
6
map<integer, string> mapofemployees = employees.stream().collect(
        collectors.tomap(
            e -> e.getempid(),
            e -> e.getempname(),
            (e1, e2) -> e1 )); <font><i>// merge function</i></font><font>
</font>

4. 將list轉(zhuǎn)換為map - 使用treemap對鍵進(jìn)行自然排序,或者指定的map實現(xiàn)呢?

?
1
2
3
4
5
6
7
map<integer, string> mapofemployees = employees.stream().collect(
        collectors.tomap(
            e -> e.getempid(),
            e -> e.getempname(),
            (e1, e2) -> e1 , <font><i>// merge function</i></font><font>
            treemap<integer, string>::<b>new</b>)); </font><font><i>// map supplier</i></font><font>
</font>

如果你的treemap實現(xiàn)需要加入比較器,將上面代碼中treemap<integer, string>::new替換成:

?
1
() -> new treemap<integer, string>(new mycomparator())

總結(jié)

以上所述是小編給大家介紹的在java 8中將list轉(zhuǎn)換為map對象方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!

原文鏈接:https://www.jdon.com/50731

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美午夜视频一区二区 | 国产高清在线观看 | 国产精品视频在线观看 | 99国内精品久久久久久久黑人 | 免费理伦片高清在线 | 男女激情视频1000辣妞范 | 国产一成人精品福利网站 | 三年片韩国在线 | 国产九九在线 | 国产男女性特黄录像 | 亚洲乱码一二三四区国产 | 亚洲精品国产成人 | 亚洲色图第四页 | zzjj中国| 加勒比伊人 | 精品免费tv久久久久久久 | 色吧 | 亚洲精品国产精麻豆久久99 | 国产精品igao视频网网址 | 四虎影视4hutv最新地址在线 | 黑人巨荃大战乌克兰美女 | 手机在线观看网站免费视频 | 日韩欧美国产一区二区三区 | 91视频99 | 波多野结衣52部合集在线观看 | 久久婷婷五月免费综合色啪 | 99久久999久久久综合精品涩 | 国产欧美日韩免费一区二区 | 久久精品国产亚洲AV热无遮挡 | 男人的天堂久久 | 青青青视频蜜桃一区二区 | 久久人妻无码毛片A片麻豆 久久热这里只有 精品 | 糖心vlog视频永久破解版 | 99在线视频精品 | 欧美日韩高清完整版在线观看免费 | 日本中文字幕黑人借宿影片 | 乳女教师欲乱动漫无修版动画3d | 99视频精品国在线视频艾草 | 国产裸露片段精华合集链接 | 国产成人盗摄精品 | 亚洲欧美自偷自拍另类小说 |