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

java lambda list转map

作者:枫尘于往逝   发布日期:2025-12-25   浏览:76

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

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

        // 使用Lambda表达式将列表转换为Map,key为Person的名字,value为Person对象
        Map<String, Person> personMap = personList.stream()
            .collect(Collectors.toMap(Person::getName, person -> person));

        // 打印结果
        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
  2. 使用Stream API:通过 stream() 方法将列表转换为流(Stream),然后使用 collect(Collectors.toMap(...)) 方法将流中的元素收集到一个 Map 中。
    • Person::getName 是一个方法引用,表示将 Person 对象的名字作为 Map 的键。
    • person -> person 表示将 Person 对象本身作为 Map 的值。
  3. 处理冲突:如果列表中有两个 Person 对象的名字相同(即键冲突),默认情况下会抛出异常。可以使用 toMap 的第三个参数来指定如何处理冲突。
  4. 打印结果:最后,我们遍历并打印生成的 Map

如果你需要更复杂的转换逻辑或处理冲突的情况,可以根据需求调整代码。

上一篇:java return

下一篇:java list addall

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java读取excel中的图片

java新建

java base64 加密

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

Laravel 中文站