Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java8list转map

作者:★执着唯她   发布日期:2025-08-30   浏览:55

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

public class ListToMapExample {
    public static void main(String[] args) {
        // 创建一个包含多个对象的列表
        List<Person> personList = Arrays.asList(
            new Person("Alice", 30),
            new Person("Bob", 25),
            new Person("Charlie", 35)
        );

        // 使用 Java 8 Stream API 将列表转换为 Map
        // key 是 Person 对象的名字,value 是 Person 对象本身
        Map<String, Person> personMap = personList.stream()
            .collect(Collectors.toMap(Person::getName, person -> person));

        // 打印生成的 Map
        personMap.forEach((key, value) -> System.out.println(key + " : " + value));
    }
}

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + '}';
    }
}

解释说明:

  1. 创建列表:我们首先创建了一个包含 Person 对象的列表 personList。每个 Person 对象有两个属性:nameage

  2. 转换为 Map:使用 Java 8 的 Stream API 和 Collectors.toMap 方法将 List<Person> 转换为 Map<String, Person>。这里:

    • Person::getName 指定了 Map 的键是 Person 对象的 name 属性。
    • person -> person 指定了 Map 的值是 Person 对象本身。
  3. 处理冲突:如果列表中有两个 Person 对象具有相同的 name,则会抛出 IllegalStateException。为了避免这种情况,可以在 toMap 方法中提供合并函数,例如 .collect(Collectors.toMap(Person::getName, person -> person, (existing, replacement) -> existing)),这将保留第一个遇到的 Person 对象。

  4. 打印结果:最后,我们遍历并打印生成的 Map,以验证转换是否成功。

如果你需要更复杂的转换逻辑(例如处理重复键或自定义值),可以根据需求调整代码。

上一篇:java主线程结束,子线程还能运行么

下一篇:java定义变量

大家都在看

java连接数据库的代码

java djl

ubuntu 卸载java

java读取excel中的图片

java新建

java sort用法

java collections.sort

java file类的方法

java发送qq邮件

java 判断

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站