通过使用numbers.stream()将列表转换为一个Stream对象,并使用distinct方法去重,最后使用collect(Collectors.toList())方法将去重后的结果转换为一个列表。 综合应用 importjava.util.Arrays;importjava.util.List;importjava.util.stream.Collectors;publicclassListFilterDistinctExample{publicstaticvoidmain(String[]args){L...
代码语言:javascript 复制 // 根据name,sex两个属性去重List<Person>unique=persons.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->newTreeSet<>(Comparator.comparing(o->o.getName()+";"+o.getSex())),ArrayList::new)); filter()过滤列表 代码语言:javascript 复制 List<Person>...
); List<Employee> lastResult =first.stream() .filter(add->second.stream() .noneMatch(all-> Objects.equals(add.getId(), all.getId())&&Objects.equals(add.getAge(), all.getAge()) ) ).collect(Collectors.toList()); lastResult.forEach(System.out::println);//过滤条件: Objects.equals(add...
add("3"); list2.add("6"); list2.add("7"); // 交集 List<String> intersection = list1.stream().filter(item -> list2.contains(item)).collect(toList()); System.out.println("---交集 intersection---"); intersection.parallelStream().forEach(System.out::println); // 差集 (list1 ...
将List转换为Stream使用distinct()方法去重filter()方法筛选转换回 5. 总结 通过本文的介绍,你学会了如何使用 Java 8 对 List 进行根据某个属性去重筛选。首先,我们将 List 转换为 Stream,然后使用distinct()方法去重,接着使用filter()方法筛选,最后将 Stream 转换回 List。希望这篇文章对你有所帮助!
filter()过滤列表 List<Person> filterList = persons.stream().filter(p -> p.getSex().equals(1)).collect(Collectors.toList()); List转Map 从一个Person对象的List集合,取出id和name组成一个map集合 Map<String, String> collect = list.stream().collect(Collectors.toMap(p -> p.getId(), p ->...
表达式list01.stream().filter(word-> ! list02.contains(word)),要找的元素,它的特征是只存在list01中,但不存在list02中,! list02.contains(word)就是说这个元素不在list02中 三、去重 输出结果:a b c List list=Arrays.asList("a","b","c","a"); ...
第三种: 炫酷的java8写法 List();//用来临时存储person的id ListpersonList = persons.stream().filter(// 过滤去重 v -> { boolean flag = !names.contains(v.getName()); names.add(v.getName()); return flag; } ).collect(Collectors.toList());...
java8方法中list集合去重数据,一般通过stream的distinct方法。但是distinct不够灵活,那么该如何解决呢?1、自定义去重函数public static <K,T>Predicate<K> distinctPredicate(Function<K,T>function){ ConcurrentHashMap<T,Boolean> map=new ConcurrentHashMap<>(); return t->null == map.putIfAbsent(function.apply...
listA.stream().filter(listB::contains).collect(Collectors.toList());System.out.println("listA和listB交集 = " + intersection);// listA和listB并集(不去重)listA.addAll(listB);System.out.println("listA和listB并集 = " + listA);// listA和listB并集(去重)List<String> distinctList = listA....