阅读量:2
在 Java 中,可以使用 Stream
的 distinct()
方法来过滤重复的数组对象。
下面是一个简单的示例代码:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { // 创建一个包含重复的数组对象的列表 List<Person> personList = Arrays.asList( new Person("Alice", 25), new Person("Bob", 30), new Person("Alice", 25), new Person("Charlie", 35) ); // 使用 Stream 的 distinct() 方法来过滤重复的数组对象 List<Person> distinctPersonList = personList.stream() .distinct() .collect(Collectors.toList()); // 输出过滤后的结果 for (Person person : distinctPersonList) { System.out.println(person.getName() + " - " + person.getAge()); } } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } // 重写 equals() 方法,用于判断两个 Person 对象是否相等 @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } Person person = (Person) obj; return age == person.age && name.equals(person.name); } // 重写 hashCode() 方法,用于计算 Person 对象的哈希值 @Override public int hashCode() { return Objects.hash(name, age); } }
上述代码中,我们定义了一个名为 Person
的类,重写了 equals()
和 hashCode()
方法,用于判断和计算对象的相等性。然后,我们创建一个包含重复的 Person
对象的列表 personList
,并使用 Stream
的 distinct()
方法过滤重复的对象。最后,我们将过滤后的结果打印出来。
输出结果如下:
Alice - 25 Bob - 30 Charlie - 35
可以看到,重复的 Person
对象被成功过滤掉了。