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

服務(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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 午夜神器18以下不能进免费 | sedog在线长片 | 国产麻豆剧果冻传媒观看免费视频 | 日本嫩模 | 国内精品久久久久久久久 | 欧美日韩亚洲第一区在线 | 国内视频一区二区 | 398av影院视频在线 | 精品小视频在线观看 | 四虎影院免费在线 | 免费全看男女拍拍拍的视频 | 99久久一香蕉国产线看观看 | 四虎院影永久在线观看 | 国产欧美日韩在线不卡第一页 | 午夜福利试看120秒体验区 | 欧美日韩精品乱国产 | 午夜A级理论片左线播放 | 四虎永久网址影院 | 日本黄色大片免费观看 | 日本草草视频 | 亚洲AV无码乱码国产麻豆穿越 | 国产精品亚洲精品观看不卡 | 日韩精品亚洲专区在线影视 | 国产精品午夜性视频网站 | 青青国产精品 | 深夜免费看 | 私人chinese beauty| 久久夜色噜噜噜亚洲AV0000 | 日本全黄三级在线观看 | 国产在线乱子伦一区二区 | 亚洲精品老司机福利在线播放 | 啊好痛嗯轻一点免费 | 日韩高清在线免费看 | 国产一区二区视频在线播放 | 亚洲精品久久久久69影院 | 91免费精品国自产拍在线不卡 | 99r视频 | 免费视频亚洲 | 亚洲精品综合一二三区在线 | 精品国偷自产在线 | 久久国产乱子伦免费精品 |