溫馨提示×

Java set去重方法有幾種

小樊
119
2024-11-27 16:01:19
欄目: 編程語言

在Java中,Set是一個不允許重復元素的集合。以下是幾種常見的去重方法:

  1. 使用HashSet:
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<Integer> set = new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(2); // 重復元素,不會被添加到集合中
        System.out.println(set); // 輸出:[1, 2, 3]
    }
}
  1. 使用LinkedHashSet:
import java.util.LinkedHashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<Integer> set = new LinkedHashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(2); // 重復元素,不會被添加到集合中
        System.out.println(set); // 輸出:[1, 2, 3]
    }
}
  1. 使用TreeSet:
import java.util.TreeSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<Integer> set = new TreeSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(2); // 重復元素,不會被添加到集合中
        System.out.println(set); // 輸出:[1, 2, 3]
    }
}
  1. 使用自定義類實現Set接口:
import java.util.Objects;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<MyInteger> set = new MySet<>();
        set.add(new MyInteger(1));
        set.add(new MyInteger(2));
        set.add(new MyInteger(3));
        set.add(new MyInteger(2)); // 重復元素,不會被添加到集合中
        System.out.println(set); // 輸出:[1, 2, 3]
    }
}

class MyInteger implements Comparable<MyInteger> {
    private int value;

    public MyInteger(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MyInteger myInteger = (MyInteger) o;
        return value == myInteger.value;
    }

    @Override
    public int hashCode() {
        return Objects.hash(value);
    }

    @Override
    public int compareTo(MyInteger o) {
        return Integer.compare(this.value, o.value);
    }
}

class MySet<T extends Comparable<T>> implements Set<T> {
    // 實現Set接口的方法,如add、remove、contains等
}

這些方法都可以實現Java Set的去重功能,具體使用哪種方法取決于你的需求和場景。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女