91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

Java set去重如何處理不同數據結構

小樊
81
2024-11-27 14:40:17
欄目: 編程語言

在Java中,Set是一個不允許重復元素的集合。如果你想要去除不同數據結構中的重復元素,你需要先將這些數據結構轉換為相同的類型,然后可以將它們添加到一個Set中。以下是一些常見的數據結構和如何將它們轉換為Set的示例:

  1. List(列表)
List<String> list = Arrays.asList("A", "B", "C", "A", "B", "D");
Set<String> set = new HashSet<>(list);
System.out.println(set); // 輸出:[A, B, C, D]
  1. Array(數組)
String[] array = {"A", "B", "C", "A", "B", "D"};
Set<String> set = new HashSet<>();
for (String element : array) {
    set.add(element);
}
System.out.println(set); // 輸出:[A, B, C, D]
  1. Map(映射)
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.put("A", 4);

Set<String> set = new HashSet<>(map.keySet());
System.out.println(set); // 輸出:[A, B, C]
  1. 自定義對象

首先,你需要為自定義對象實現equals()hashCode()方法。這兩個方法用于確定兩個對象是否相等以及如何將它們存儲在Set中。

public class CustomObject {
    private String name;
    private int value;

    // 構造函數、getter和setter方法

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        CustomObject that = (CustomObject) o;
        return value == that.value && Objects.equals(name, that.name);
    }

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

然后,你可以將自定義對象的實例添加到Set中。

CustomObject obj1 = new CustomObject("A", 1);
CustomObject obj2 = new CustomObject("B", 2);
CustomObject obj3 = new CustomObject("C", 3);
CustomObject obj4 = new CustomObject("A", 4);

Set<CustomObject> set = new HashSet<>();
set.add(obj1);
set.add(obj2);
set.add(obj3);
set.add(obj4);

System.out.println(set); // 輸出:[CustomObject{name='A', value=1}, CustomObject{name='B', value=2}, CustomObject{name='C', value=3}]

這樣,你就可以去除不同數據結構中的重復元素了。

0
穆棱市| 浦东新区| 玛纳斯县| 五常市| 剑河县| 寿阳县| 兴安县| 罗甸县| 柯坪县| 温宿县| 利川市| 噶尔县| 惠来县| 托克逊县| 潮安县| 湟中县| 上饶市| 夹江县| 山西省| 东至县| 永泰县| 舒城县| 汤原县| 尉氏县| 海盐县| 平湖市| 克山县| 成安县| 勃利县| 陇川县| 临沧市| 宜黄县| 青龙| 桃源县| 顺义区| 阳高县| 靖西县| 集贤县| 遂川县| 乌鲁木齐市| 敖汉旗|