ホームページ  >  記事  >  Java  >  Java 配列から重複要素を効率的に削除する方法を学習します。

Java 配列から重複要素を効率的に削除する方法を学習します。

王林
王林オリジナル
2023-12-23 13:27:58988ブラウズ

Java 配列から重複要素を効率的に削除する方法を学習します。

人気のあるプログラミング言語である Java の配列操作は、プログラマーの日常業務における一般的なタスクの 1 つです。配列を処理するとき、配列に重複要素が含まれていないことを確認するために配列の重複を除去する必要がある状況によく遭遇します。この記事では、高速かつ簡潔な Java 配列の重複排除方法をいくつか紹介し、具体的なコード例を示します。

方法 1: HashSet を使用する

HashSet は Java のコレクション型で、要素の重複が許されないのが特徴です。 HashSet のこの機能を使用して配列の重複を排除できます。具体的な手順は次のとおりです。

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

方法 2: ストリームを使用する
Java 8 では、ストリーミング方式でコレクションを操作する方法を提供する Stream API が導入されました。 Stream の Distinct() メソッドを使用して、配列の重複をすばやく排除できます。例は次のとおりです:

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

方法 3: ループ トラバーサルを使用する
コレクションとストリームを使用して配列の重複を排除することに加えて、次のことができます。また、基本的なループ トラバーサル方法を使用して、配列の重複排除を実現します。具体的な手順は次のとおりです。

public static int[] removeDuplicates(int[] array) {
    int length = array.length;
    int count = 0;
    for (int i = 0; i < length; i++) {
        boolean isDuplicate = false;
        for (int j = i + 1; j < length; j++) {
            if (array[i] == array[j]) {
                isDuplicate = true;
                break;
            }
        }
        if (!isDuplicate) {
            array[count++] = array[i];
        }
    }
    int[] result = new int[count];
    System.arraycopy(array, 0, result, 0, count);
    return result;
}

概要

この記事では、一般的に使用される 3 つの Java 配列重複排除方法を紹介し、具体的なコード例を示します。 HashSet、Stream、または基本的なループ トラバーサルのいずれを使用する場合でも、配列の重複排除操作を迅速かつ効果的に完了できます。実際の作業では、特定の状況に応じて配列の重複排除の必要性を処理する適切な方法を選択できるため、コードの効率と可読性が向上します。

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

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