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

溫馨提示×

java中set如何高效去重

小樊
81
2024-11-21 12:00:34
欄目: 編程語言

在Java中,使用Set集合可以很容易地去重。以下是一些建議:

  1. 使用HashSet:HashSet是基于哈希表實現的,它不允許重復元素。將集合轉換為HashSet,可以實現自動去重。
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);
    }
}
  1. 使用LinkedHashSet:LinkedHashSet是基于哈希表和鏈表實現的,它按照插入順序維護元素。將集合轉換為LinkedHashSet,可以實現保留原始順序的同時去重。
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);
    }
}
  1. 針對自定義對象,實現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中高效地去重。根據具體需求選擇合適的方法。

0
正安县| 屏山县| 三明市| 厦门市| 上高县| 富宁县| 贺州市| 马山县| 长丰县| 三明市| 乡宁县| 奇台县| 贵港市| 安仁县| 土默特右旗| 三原县| 阳谷县| 石嘴山市| 海丰县| 沙田区| 浠水县| 平遥县| 永福县| 镇安县| 游戏| 乐清市| 南澳县| 遵义县| 申扎县| 寻甸| 台中县| 报价| 牙克石市| 潍坊市| 杨浦区| 遂川县| 界首市| 泰顺县| 元江| 白银市| 那坡县|