最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中List轉(zhuǎn)換成Map的兩種實現(xiàn)方式

 更新時間:2025年09月23日 08:53:30   作者:我需要打球  
Java中List轉(zhuǎn)Map常用Stream API,通過collect(Collectors.toMap())實現(xiàn),需明確鍵值規(guī)則并處理重復(fù)鍵沖突,支持靈活擴展

在 Java 中,將List轉(zhuǎn)換為Map是常見操作,通常需要指定Map的鍵(Key)和值(Value),常用工具類有Java 8 Stream API

一、Java8 Stream API

package list2map;

import java.util.*;
import java.util.stream.Collectors;

// 定義實體類
class User {
    private Long id;
    private String name;
    
    // 構(gòu)造函數(shù)、getter、setter省略
    public User(Long id, String name) {
        this.id = id;
        this.name = name;
    }
    public Long getId() { return id; }
    public String getName() { return name; }
}

public class ListToMapExample {
    public static void main(String[] args) {
        // 準備List數(shù)據(jù)
        List<User> userList = List.of(
            new User(1L, "Alice"),
            new User(2L, "Bob"),
//            new User(1L, "Bob"),如果兩個id都是1,那么Bob會覆蓋Alice
            new User(3L, "Charlie")
        );
        // 轉(zhuǎn)換為Map<id, User>
        Map<Long, User> userMap = userList.stream()
            .collect(Collectors.toMap(
                User::getId,  // 鍵:User對象的id
                user -> user,   // 值:User對象本身
                    (oldValue,newValue) -> newValue, //沖突時取新值
                    TreeMap::new //指定Map的實現(xiàn)類

            ));
        //Map集合的遍歷
        Set<Map.Entry<Long, User>> entries = userMap.entrySet();
        for (Map.Entry<Long, User> entry : entries) {
            System.out.println("entry.getKey() = " + entry.getKey());
            System.out.println("entry.getValue() = " + entry.getValue().getName());
        }
    }
}

二、傳統(tǒng)方式

import java.util.HashMap;
import java.util.Map;

Map<Long, User> userMap = new HashMap<>();
for (User user : userList) {
    userMap.put(user.getId(), user);  // 手動put鍵值對
}

三、總結(jié)

  • 推薦方式:使用Stream.collect(Collectors.toMap()),代碼簡潔且支持靈活配置。
  • 核心要素:明確鍵(Key)、值(Value)的提取規(guī)則,處理可能的重復(fù)鍵沖突。
  • 擴展場景:可根據(jù)需求轉(zhuǎn)換為不同的Map實現(xiàn)類,或只保留對象的部分屬性作為值。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何更快樂的使用Java 8中的Lambda特性

    如何更快樂的使用Java 8中的Lambda特性

    從java8出現(xiàn)以來lambda是最重要的特性之一,它可以讓我們用簡潔流暢的代碼完成一個功能。下面這篇文章主要給大家介紹了關(guān)于如何更快樂的使用Java 8中的Lambda特性的相關(guān)資料,需要的朋友可以參考下
    2018-11-11
  • Java給PDF加水印并合并多個文件

    Java給PDF加水印并合并多個文件

    大家好,本篇文章主要講的是Java給PDF加水印并合并多個文件,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • springboot+shiro+jwtsession和token進行身份驗證和授權(quán)

    springboot+shiro+jwtsession和token進行身份驗證和授權(quán)

    最近和別的軟件集成項目,需要提供給別人接口來進行數(shù)據(jù)傳輸,發(fā)現(xiàn)給他token后并不能訪問我的接口,拿postman試了下還真是不行,檢查代碼發(fā)現(xiàn)項目的shiro配置是通過session會話來校驗信息的,修改代碼兼容token和session
    2024-06-06
  • SpringMVC ViewResolver視圖解析器組件

    SpringMVC ViewResolver視圖解析器組件

    這篇文章主要介紹了SpringMVC ViewResolver視圖解析器組件,Spring MVC的視圖解析器 ViewResolver 是框架中一個重要的組件,用于將控制器返回的邏輯視圖名稱解析為具體的視圖實現(xiàn)對象,最終呈現(xiàn)給用戶的是具體的視圖實現(xiàn)
    2023-04-04
  • java中的export方法實現(xiàn)導(dǎo)出excel文件

    java中的export方法實現(xiàn)導(dǎo)出excel文件

    這篇文章主要介紹了java中的export方法實現(xiàn)導(dǎo)出excel文件,文章圍繞java導(dǎo)出excel文件的相關(guān)資料展開詳細內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Java INPUTSTREAM如何實現(xiàn)重復(fù)使用

    Java INPUTSTREAM如何實現(xiàn)重復(fù)使用

    這篇文章主要介紹了Java INPUTSTREAM如何實現(xiàn)重復(fù)使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-10-10
  • java編程下字符串的16位,32位md5加密實現(xiàn)方法

    java編程下字符串的16位,32位md5加密實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava編程下字符串的16位,32位md5加密實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Java 利用dom方式讀取、創(chuàng)建xml詳解及實例代碼

    Java 利用dom方式讀取、創(chuàng)建xml詳解及實例代碼

    這篇文章主要介紹了Java 利用dom方式讀取、創(chuàng)建xml的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 詳解Java解析XML的四種方法

    詳解Java解析XML的四種方法

    本篇文章主要介紹了java解析XML的幾種方式,XML現(xiàn)在已經(jīng)成為一種通用的數(shù)據(jù)交換格式,給數(shù)據(jù)集成與交互提供了方便,有需要的可以了解一下。
    2016-11-11
  • Mock和@InjectMocks的區(qū)別及說明

    Mock和@InjectMocks的區(qū)別及說明

    @Mock和@InjectMocks是Mockito框架中的兩個注解,前者用于創(chuàng)建模擬對象,后者用于將模擬對象注入到被測試類中
    2024-11-11

最新評論

本溪| 班玛县| 鄂伦春自治旗| 尚义县| 阜康市| 项城市| 晋江市| 巩留县| 嵊州市| 大理市| 绿春县| 丹寨县| 平乡县| 金乡县| 香格里拉县| 长丰县| 全椒县| 宜黄县| 保康县| 苏尼特右旗| 恭城| 北安市| 军事| 台前县| 凌海市| 新乐市| 封开县| 安图县| 敦煌市| 县级市| 广平县| 六枝特区| 嵊州市| 西畴县| 沁水县| 五指山市| 综艺| 怀仁县| 丰县| 邵阳县| 德阳市|