有时博客内容会有变动,首发博客是最新的,其他博客地址可能未同步,请认准https://blog.zysicyj.top
使用 Java Stream 将 List 转换为 Map 可以使用 Collectors.toMap()
方法。toMap()
方法接受两个参数,第一个参数是用于提取 Map 的键的函数,第二个参数是用于提取 Map 的值的函数。下面是一个示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import java.util.*; import java.util.stream.Collectors;
public class Main { public static void main(String[] args) { List<Person> people = Arrays.asList( new Person("Alice", 25), new Person("Bob", 30), new Person("Charlie", 35) );
Map<String, Integer> ageByName = people.stream() .collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(ageByName); } }
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; } }
|
在上面的示例中,我们有一个 Person
类表示人员信息,包含姓名和年龄。我们将一个 List<Person>
转换为一个 Map<String, Integer>
,其中姓名作为键,年龄作为值。使用Person::getName
作为键提取函数,Person::getAge
作为值提取函数。最后,我们将结果打印出来。