java中怎么用filter过滤重复数组对象

avatar
作者
筋斗云
阅读量:2

在 Java 中,可以使用 Streamdistinct() 方法来过滤重复的数组对象。

下面是一个简单的示例代码:

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,并使用 Streamdistinct() 方法过滤重复的对象。最后,我们将过滤后的结果打印出来。

输出结果如下:

Alice - 25 Bob - 30 Charlie - 35 

可以看到,重复的 Person 对象被成功过滤掉了。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!