map集合根据字段去重list
时间: 2023-09-07 13:17:20 浏览: 99
Java中List根据map的某个key去重的代码
可以使用Java 8中的Stream API来实现根据某个字段去重List,并将结果存储在Map集合中的操作。具体实现如下:
假设有一个Person类,其中包含id和name两个属性:
```
public class Person {
private int id;
private String name;
// 构造方法、getter和setter方法省略
}
```
现在有一个List<Person> persons,需要根据id字段去重,并将结果存储在Map<Integer, Person>中,可以使用如下代码实现:
```
Map<Integer, Person> map = persons.stream()
.collect(Collectors.toMap(Person::getId, Function.identity(), (p1, p2) -> p1));
```
上述代码中,使用stream()方法将List转换为流,然后使用collect()方法将结果收集到Map集合中。其中,toMap()方法的第一个参数指定了Map的key,使用Person::getId表示使用id属性作为key;第二个参数指定了Map的value,使用Function.identity()表示使用当前元素作为value;第三个参数指定了当key冲突时如何处理,使用(p1, p2) -> p1表示保留第一个key对应的value。
这样,就可以根据id字段去重List,并将结果存储在Map集合中了。
阅读全文