Java list根据string字段去重
时间: 2023-07-07 17:24:33 浏览: 51
可以通过使用Java 8提供的Stream API和Lambda表达式来根据指定的字符串字段对List进行去重操作。具体实现步骤如下:
1.定义一个实体类,包含需要去重的字符串字段,例如:
```
public class Person {
private String name;
// 其他字段...
// 构造函数、getter和setter方法...
}
```
2.初始化一个包含多个Person对象的List,例如:
```
List<Person> personList = new ArrayList<>();
personList.add(new Person("Tom"));
personList.add(new Person("Jerry"));
personList.add(new Person("Tom"));
personList.add(new Person("Jack"));
```
3.使用Stream API进行去重操作,例如:
```
List<Person> distinctList = personList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))),
ArrayList::new
)
);
```
以上代码将根据Person对象的name字段进行去重,并返回一个新的List对象。其中,使用TreeSet集合实现去重操作,Comparator.comparing(Person::getName)指定按照name字段进行比较,最后将结果转换为ArrayList类型。