java 8 listUser 根据Listcode 快速去重
可以使用Java 8的Stream API来实现List快速去重的操作。具体步骤如下:
- 使用Stream的distinct()方法进行去重。
- 使用Stream的filter()方法来过滤掉需要去重的元素。
以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
// 假设userList中已有User对象
List<User> distinctUserList = userList.stream()
.filter(distinctByKey(User::getCode))
.toList();
// 打印去重后的User列表
distinctUserList.forEach(System.out::println);
}
public static <T> java.util.function.Predicate<T> distinctByKey(java.util.function.Function<? super T, Object> keyExtractor) {
java.util.Map<Object, Boolean> seen = new java.util.HashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
}
class User {
private String code;
// 其他属性和方法
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
// 其他属性和方法
}
在上述代码中,我们定义了一个辅助方法distinctByKey(),用于根据对象的某个属性进行去重。这里我们以User对象的code属性作为去重的依据。
通过Stream的filter()方法结合distinctByKey()方法,我们可以快速实现List的去重操作
原文地址: https://www.cveoy.top/t/topic/ivGC 著作权归作者所有。请勿转载和采集!