在Java中,使用Set集合可以很容易地去重。以下是一些建議:
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 4, 5, 6, 6, 7};
Set<Integer> set = new HashSet<>(Arrays.asList(array));
System.out.println("去重后的集合: " + set);
}
}
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Integer[] array = {1, 2, 3, 4, 4, 5, 6, 6, 7};
Set<Integer> set = new LinkedHashSet<>(Arrays.asList(array));
System.out.println("去重后的集合(保留原始順序): " + set);
}
}
equals()
和hashCode()
方法:為了在Set中去重自定義對象,需要在對象類中實現equals()
和hashCode()
方法。這兩個方法用于比較對象是否相等以及確定對象在哈希表中的位置。import java.util.Objects;
import java.util.Set;
import java.util.HashSet;
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
public class Main {
public static void main(String[] args) {
Person[] array = {new Person("Alice", 30), new Person("Bob", 25), new Person("Alice", 30)};
Set<Person> set = new HashSet<>(Arrays.asList(array));
System.out.println("去重后的集合: " + set);
}
}
以上方法可以幫助你在Java中高效地去重。根據具體需求選擇合適的方法。