Stream<Integer> numberStream = numbers.stream(); 复制代码使用distinct()方法去重: Stream<Integer> distinctStream = numberStream.distinct(); 复制代码使用collect()方法将结果收集到一个新的集合中: List<Integer> distinctNumbers = distinctStream.collect(Collectors.toList()); 复制代码这样,distinctNumbers中...
这是Stream中的一个收集器,相比普通的Collectors.toList、Collectors.groupingBy等收集器 Collectors.collectingAndThen还可以在收集之后进行某种操作 多一个形参,用于写function函数(有入参有出参) 举例说明collectingAndThen: List按某属性去重,返回List 2.本质流程 使用Collectors.collectingAndThen的本质是:先把new Set(...
单条件去重代码 rrayList<listData> collect =list.stream().collect(Collectors.collectingAndThen( Collectors.toCollection(() ->newTreeSet<>( Comparator.comparing(listData::getId))),ArrayList::new));
//根据name去重List<Person> unique =persons.stream().collect( Collectors.collectingAndThen( Collectors.toCollection(()->newTreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new) );
public static void test(List<Integer> list){ list=list.stream().distinct().collect(Collectors.toList()); System.out.println("新list:"+list); } } 现在你看,上面的实现代码比迭代器的实现方式更简单,运行上面的代码会得到以下结果: 而且利用stream()方法,我们不仅对运行结果实现了去重,还没有改变原来...
publicclassUser{privateintid;privateStringname;// 构造方法、getter和setter省略}List<User>users=// 假设已经初始化 1. 2. 3. 4. 5. 6. 7. 8. 使用Collectors.toMap()方法进行去重的代码如下: List<User>uniqueUsers=users.stream().collect(Collectors.toMap(User::getId,Function.identity(),(oldValue...
//1.提取出list对象中的一个属性List<String>stIdList1=stuList.stream().map(Person::getId).collect(Collectors.toList());//2.提取出list对象中的一个属性并去重List<String>stIdList2=stuList.stream().map(Person::getId).distinct().collect(Collectors.toList());...
三、去重 输出结果:a b c List list=Arrays.asList("a","b","c","a"); List distinct=list.stream().distinct().collect(Collectors.toList()); distinct.stream().forEach(word->System.out.print(word+" ")); 删除了重复的字符"a"
List<TestCommodity> codeDistinctList = testCommodityList .stream() .filter(distinctByKey(TestCommodity::getCode)) .collect(Collectors.toList()); 二、根据对象中多个个属性去重,利用collectingAndThenList<TestCommodity> cbList = testCommodityList .stream() .collect( Collectors.collectingAndThen( ...
ids.contains(item.getId())){ ids.add(item.getId()); return true; }else{ return false; } }).collect(Collectors.toList());stream有提供distinct去重的函数。sorted 1 .按年龄升序排 2.按年龄降序排 除了上面的一些函数外,还有功能强大的函数,如:limit、max、reduce等。Java Stream Debugger 在我们...