编写工具类 public class DistinctUtil { public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Map<Object, Boolean> seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t
java8实现列表去重,java8的stream和lambda的使用实例 通过普通的方式也可以达到去重的效果,但是借助java8新特性可以很方便的实现列表去重,测试demo如下 实体类: public class Person { private int id; private String name; private int age; public Person() { } public Person(int id, String name, int age) { this.id = id;
Map<String, List<User>> userMap = list.stream().collect(Collectors.groupingBy(User::getGroup)); 示例: public class HelloWorld { public static void main(String[] args) { Random random = new Random(); List<User> list = new ArrayList<>(
面试中经常被问到的list如何去重,用来考察你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固.我们大家都知道,set集合的特点就是没有重复的元素.如果集合中的数据类型是基本数据类型,可以直接将list集合转换成set,就会自动去除重复的元素,这个就相对比较简单.如下示例: public class Test { public static void main(String[] args) { List list = new ArrayList(); list.add(1