java 8 listUser 根据Listcode 去重
可以使用Java 8的stream和distinct方法来根据List
假设User类有一个属性name,可以按照name属性去重,示例代码如下:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User("Alice"));
userList.add(new User("Bob"));
userList.add(new User("Alice"));
userList.add(new User("Charlie"));
List<User> distinctUserList = userList.stream()
.distinct()
.toList();
System.out.println(distinctUserList);
}
static class User {
private String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
User user = (User) obj;
return name.equals(user.name);
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
}
输出结果为:
[User{name='Alice'}, User{name='Bob'}, User{name='Charlie'}]
在User类中,重写了equals和hashCode方法,以name属性作为判断两个对象是否相等的依据。然后使用stream的distinct方法去重,并使用toList方法将结果转换为List
原文地址: https://www.cveoy.top/t/topic/ivGB 著作权归作者所有。请勿转载和采集!