Collectors.toMap(字段,实体)
时间: 2024-04-10 18:25:58 浏览: 70
Collectors.toMap(字段,实体)是Java 8中提供的一个用于将流(Stream)中的元素映射为一个Map集合的方法。它接受两个参数,第一个参数是用于指定Map的键的字段,第二个参数是用于指定Map的值的实体。
具体来说,Collectors.toMap(字段,实体)方法会将流中的每个元素按照指定的字段提取出来作为Map的键,然后将对应的实体作为Map的值。最终返回一个包含了流中所有元素的键值对的Map集合。
需要注意的是,如果流中存在重复的键,则会抛出一个IllegalStateException异常。为了避免这种情况,可以使用Collectors.toMap(字段,实体,合并函数)方法,其中合并函数用于处理重复键的情况。
下面是一个示例代码:
```
List<Person> personList = Arrays.asList(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Alice", 35)
);
Map<String, Person> personMap = personList.stream()
.collect(Collectors.toMap(Person::getName, Function.identity()));
System.out.println(personMap);
```
输出结果为:
```
{Alice=Person{name='Alice', age=25}, Bob=Person{name='Bob', age=30}}
```
阅读全文