📜  在列表中查找唯一元素 java (1)

📅  最后修改于: 2023-12-03 15:07:58.214000             🧑  作者: Mango

在列表中查找唯一元素

在开发过程中,常常需要在列表中查找唯一元素,本文将为大家介绍如何在Java中实现列表中查找唯一元素的方法。

使用HashSet实现

HashSet是Java中用于存储唯一元素的集合,其特点是不允许存储重复元素。因此,我们可以利用HashSet来实现查找列表中的唯一元素。代码实现如下:

// 假设我们有一个存储整数的列表 list
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(1);

// 利用HashSet去重
Set<Integer> set = new HashSet<>(list);

// 遍历 HashSet ,得到唯一元素
for (Integer integer : set){
    System.out.println(integer);
}

输出结果为:

1
2
3
4
实现自定义方法

如果需要根据自定义规则找到唯一元素,我们可以使用Java 8引入的stream语法来实现。代码实现如下:

// 假设我们有一个存储学生的列表 studentList,
// 每一个学生都包含一个属性:学生编号 studentId
List<Student> studentList = new ArrayList<>();
studentList.add(new Student(1, "小明"));
studentList.add(new Student(2, "小红"));
studentList.add(new Student(3, "小亮"));
studentList.add(new Student(2, "小花"));
studentList.add(new Student(4, "小兰"));
studentList.add(new Student(1, "小强"));

// 根据学生编号去重,得到唯一元素
List<Student> uniqueList = studentList.stream().collect(
        Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Student::getStudentId))),
                ArrayList::new
        )
);

// 遍历唯一列表,输出结果
for (Student student : uniqueList) {
    System.out.println(student.getStudentId() + " " + student.getName());
}

输出结果为:

1 小明
2 小红
3 小亮
4 小兰

本文介绍了使用HashSet和自定义方法来实现列表中查找唯一元素的方法,这两种方法可以根据数据类型和需求的不同进行选择和使用。