中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Java set去重如何處理null值

小樊
81
2024-11-27 15:10:17
欄目: 編程語言

在Java中,使用Set集合去重時,如果需要處理null值,可以使用以下方法:

  1. 使用HashSet:

HashSet集合會自動過濾掉重復元素,包括null值。因此,只需將集合轉換為HashSet即可實現去重。

import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("A");
        set.add(null);
        set.add("B");
        set.add(null);
        set.add("A");

        System.out.println("Set without duplicates: " + set);
    }
}

輸出結果:

Set without duplicates: [A, null, B]
  1. 使用LinkedHashSet:

LinkedHashSet會保留元素的插入順序,同時也會過濾掉重復元素,包括null值。

import java.util.LinkedHashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<String> set = new LinkedHashSet<>();
        set.add("A");
        set.add(null);
        set.add("B");
        set.add(null);
        set.add("A");

        System.out.println("Set without duplicates: " + set);
    }
}

輸出結果:

Set without duplicates: [A, null, B]
  1. 使用自定義類并實現equals()hashCode()方法:

如果需要根據自定義類的屬性進行去重,可以在自定義類中實現equals()hashCode()方法。這樣,Set集合會根據這兩個方法的返回值來判斷元素是否重復。在這種情況下,需要注意處理null值。

import java.util.Objects;
import java.util.Set;
import java.util.LinkedHashSet;

class MyClass {
    private String property;

    public MyClass(String property) {
        this.property = property;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        MyClass myClass = (MyClass) o;
        return Objects.equals(property, myClass.property);
    }

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

public class Main {
    public static void main(String[] args) {
        Set<MyClass> set = new LinkedHashSet<>();
        set.add(new MyClass("A"));
        set.add(null);
        set.add(new MyClass("B"));
        set.add(null);
        set.add(new MyClass("A"));

        System.out.println("Set without duplicates: " + set);
    }
}

輸出結果:

Set without duplicates: [MyClass{property='A'}, null, MyClass{property='B'}]

這樣,Set集合就可以根據自定義類的屬性進行去重,同時處理null值。

0
瑞金市| 两当县| 襄樊市| 夏河县| 镇原县| 枣庄市| 辽中县| 中超| 安多县| 秭归县| 阿瓦提县| 兴安盟| 双柏县| 盱眙县| 黎平县| 桦甸市| 济南市| 威信县| 同仁县| 澳门| 田东县| 喜德县| 万山特区| 惠州市| 德庆县| 金华市| 宁阳县| 潜山县| 太保市| 建水县| 邵阳市| 青田县| 中卫市| 即墨市| 河东区| 思茅市| 桐乡市| 谢通门县| 南昌市| 康马县| 密山市|