中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么在Java8中將List轉換為Map對象

發布時間:2021-02-22 15:56:28 來源:億速云 閱讀:187 作者:Leah 欄目:編程語言

這篇文章給大家介紹怎么在Java8中將List轉換為Map對象,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Java的特點有哪些

Java的特點有哪些 1.Java語言作為靜態面向對象編程語言的代表,實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。 2.Java具有簡單性、面向對象、分布式、安全性、平臺獨立與可移植性、動態性等特點。 3.使用Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

假設有一個員工對象:

<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>

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

 <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的值:

 <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中有重復的empId,映射到Map時,Key時不能重復的,如何解決?

默認情況時會拋重復異常,為了克服IllegalStateException重復鍵異常,我們可以簡單地添加一個

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

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轉換為Map - 使用TreeMap對鍵進行自然排序,或者指定的Map實現呢?

 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實現需要加入比較器,將上面代碼中TreeMap<Integer, String>::new替換成:

() -> new TreeMap<Integer, String>(new MyComparator())

關于怎么在Java8中將List轉換為Map對象就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇庆市| 嘉定区| 淳安县| 宝兴县| 达孜县| 汉阴县| 中山市| 定南县| 和平区| 永宁县| 铁岭市| 庆阳市| 锡林郭勒盟| 邵武市| 裕民县| 松原市| 江永县| 古蔺县| 拉萨市| 麻栗坡县| 南陵县| 三穗县| 民丰县| 台安县| 政和县| 夏邑县| 莱西市| 安仁县| 远安县| 醴陵市| 界首市| 苗栗县| 右玉县| 铜梁县| 轮台县| 台中市| 西乌| 镇原县| 夏津县| 阳朔县| 东台市|