ホームページ >Java >&#&チュートリアル >5 つの効率的な Java 配列重複排除方法を明らかに

5 つの効率的な Java 配列重複排除方法を明らかに

WBOY
WBOYオリジナル
2023-12-23 14:46:101390ブラウズ

5 つの効率的な Java 配列重複排除方法を明らかに

5 つの効率的な Java 配列重複排除方法を公開

Java 開発プロセスでは、配列の重複排除が必要な状況によく遭遇します。重複排除とは、配列内の重複する要素を削除し、1 つだけを保持することです。この記事では、5 つの効率的な Java 配列重複排除方法を紹介し、具体的なコード例を示します。

方法 1: HashSet を使用して重複を削除する

HashSet は、要素を追加するときに重複を自動的に削除する、順序付けされていない非重複のコレクションです。したがって、HashSet の特性を使用して配列の重複を排除できます。

public static int[] removeDuplicates(int[] arr) {
    Set<Integer> set = new HashSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

方法 2: LinkedHashSet を使用して要素の順序を維持し、重複を排除します。

LinkedHashSet は、挿入された順序で要素を並べ替える順序付けされた非重複セットです。 LinkedHashSet を使用すると、重複を削除し、要素の順序を維持できます。

public static int[] removeDuplicates(int[] arr) {
    Set<Integer> set = new LinkedHashSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

方法 3: 配列の重複排除に Stream API を使用する

Java 8 では、stream() メソッドを通じて配列をストリームに変換し、配列の重複を排除できる Stream API が導入されました。 Different() メソッド。重い。

import java.util.Arrays;
import java.util.stream.Collectors;

public static int[] removeDuplicates(int[] arr) {
    return Arrays.stream(arr).distinct().toArray();
}

方法 4: 並べ替えと重複排除に TreeSet を使用する

TreeSet は、要素を自然な順序に従って並べ替える、順序付けされた重複のないコレクションです。 TreeSet を使用すると、配列の重複排除と並べ替えを行うことができます。

public static int[] removeDuplicates(int[] arr) {
    Set<Integer> set = new TreeSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

方法 5: 重複排除に BitSet を使用する

BitSet はビット値を保存するために使用されるコレクションであり、重複排除にも使用できます。対応するビットの値を true に設定することで、重複した要素を削除できます。

public static int[] removeDuplicates(int[] arr) {
    BitSet bitSet = new BitSet();
    for (int num : arr) {
        bitSet.set(num);
    }
    int[] result = new int[bitSet.cardinality()];
    int index = 0;
    for (int i = bitSet.nextSetBit(0); i >= 0; i = bitSet.nextSetBit(i + 1)) {
        result[index++] = i;
    }
    return result;
}

上記は、Java 配列の効率的な 5 つの重複排除方法です。実際の状況に応じて適切な方法を選択すると、重複排除プロセス中にアレイをより効率的に処理できます。この記事が Java 開発における配列重複排除の問題の解決に役立つことを願っています。

以上が5 つの効率的な Java 配列重複排除方法を明らかにの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。