java中将集合转成一个map
时间: 2023-02-06 13:54:16 浏览: 911
在 Java 中,可以使用 Stream API 将集合转换为 Map。下面是一个示例,假设你有一个 Person 类,它有一个 name 属性和一个 id 属性,并且你希望将 Person 对象的 id 作为键,将 Person 对象本身作为值,存储在 Map 中:
```
List<Person> people = ...;
Map<Long, Person> map = people.stream()
.collect(Collectors.toMap(Person::getId, Function.identity()));
```
在上面的代码中,我们首先使用 Stream API 将集合转换为流,然后使用 collect 方法将流转换为 Map。Collectors.toMap 方法接受两个参数:一个函数,用于从 Person 对象中提取 id,作为 Map 中的键;另一个函数,用于返回 Person 对象本身,作为 Map 中的值。
如果你想要更多的控制,你也可以使用 Collectors.toMap 方法的重载版本,它接受三个参数:一个函数,用于从 Person 对象中提取 id,作为 Map 中的键;另一个函数,用于返回 Person 对象本身,作为 Map 中的值;还有一个合并函数,用于在出现键冲突时处理冲突。
例如,假设你希望在出现键冲突时,保留旧的 Person 对象,而不是新的 Person 对象,你可以这样写:
```
List<Person> people = ...;
Map<Long, Person> map = people.stream()
.collect(Collectors.toMap(Person::getId, Function.identity(), (
阅读全文