java8list对象去重
时间: 2023-09-24 22:14:08 浏览: 96
list去掉重复对象
5星 · 资源好评率100%
在Java 8中,可以使用Stream API和distinct()方法对List对象进行去重。以下是示例代码:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 1, 2, 3, 4);
List<Integer> distinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println(distinctList);
```
输出结果为:
```
[1, 2, 3, 4]
```
此外,如果有自定义对象需要去重,需要在自定义对象中实现equals()方法和hashCode()方法,以便能够正确地比较和去重。例如:
```java
public class Person {
private String name;
private int age;
// 省略构造方法和getter/setter方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Person)) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
```
然后可以使用以下代码对List<Person>对象进行去重:
```java
List<Person> list = new ArrayList<>();
// 添加Person对象到List中
List<Person> distinctList = list.stream().distinct().collect(Collectors.toList());
System.out.println(distinctList);
```
阅读全文