首页> 文章> 详情

java 8 stream List去重/集合去重

教程分享 > Java教程 (6909) 2024-04-17 12:33:24

简介

本博文主要讲解在Java 8中 如何通过stream流的方式去重。
 

List<String>通过stream去重

List unique = list.stream().distinct().collect(Collectors.toList());
List<String>通过stream去重是非常简单的。就上面的一句代码搞定
 

List<对象>通过stream根据集合对象的某个属性或者某些属性去重

// Person 对象
public class Person {
    private String id;
    
    private String name;
    
    private String sex;

    <!--省略 get set-->
}
根据name去重
// 根据name去重
List<Person> unique = persons.stream().collect(
            Collectors.collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
);
根据name sex两个属性去重
List<Person> unique = persons.stream().collect(
           Collectors. collectingAndThen(
                    Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName() + ";" + o.getSex()))), ArrayList::new)
);
https://www.leftso.com/article/618.html

相关文章
简介本博文主要讲解在Java 8中 如何通过stream流的方式去重
本文主要讲解通过使用 Stream.concat() 方法 去合并两个stream,新的stream由原来的两个stream所有元素组成(相同元素会覆盖)
java 8 stream 多字段排序,本例子主要使用stream进行多个字段的排序,使用了 comparators和Comparator.thenComparing()方法。比较器之间返回一个...
取出属性为集合List&lt;String&gtl; stateNameList = dictEntityList.stream().map(DictEntity::getName).colle...
Java stream 筛选集合中的唯一对象出来演示数据模型@AllArgsConstructor @NoArgsConstructor @Data public class UserInfo ...
//声明一个List集合List&lt;Person&gtl; list = new ArrayList();           list.add(new Person("1001", "小A...
java stream 按月(日期Date)分组统计首先是上一个简单的数据模型@Data @NoArgsConstructor @AllArgsConstructor public class ...
jdk8新特性流的使用
javastreamList根据对象某个属性升序或降序排序代码参考;publicclassMyTests{@NoArgsConstructor@AllArgsConstructor@Datapu...
首先,数据结构。这只是一个简单的橄榄球运动员,有名字和评级。class RugbyPlayer { private String name; private Integer ra...
首先定义一个包含字符串日期的数据对象​public class ObjectDto implements Serializable { private static final long...
是什么Predicatejava8,java.util.function中 Function, Supplier, Consumer, Predicate和其他函数式接口广泛用在支持lambda...
最近要用到jdeli-imageio包里面一个功能,进行了去水印处理。首先新建一个空白maven项目,并引入javassist依赖 &lt;dependency&gtl; ...
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
java8 Function 应用场景 --代码重构旧代码: import org.springframework.beans.BeanUtils; import java.util.func...