在 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
對象被成功過濾掉了。