ホームページ  >  記事  >  Java  >  Java 配列の重複排除のための 5 つの実用的な方法の詳細な分析

Java 配列の重複排除のための 5 つの実用的な方法の詳細な分析

WBOY
WBOYオリジナル
2023-12-23 09:21:371534ブラウズ

Java 配列の重複排除のための 5 つの実用的な方法の詳細な分析

Java 配列の重複排除のための 5 つの実用的な方法の詳細な分析

Java では、配列の処理は非常に一般的な操作です。配列の重複排除は、実際の開発でよく遭遇する問題です。この記事では、Java 配列の重複排除のための 5 つの実用的な方法を詳しく分析し、具体的なコード例を示します。

1. HashSet を使用して重複を削除する
HashSet は、自動重複排除機能を持つ Java のコレクションです。 HashSet の特性を使用して配列内の要素を HashSet に追加し、重複排除の効果を実現できます。

import java.util.HashSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        HashSet<Integer> set = new HashSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

2. LinkedHashSet を使って重複を削除する
LinkedHashSet は HashSet のサブクラスであり、重複排除機能に加えて、挿入順序を維持することもできます。元の順序を維持し、重複した要素を削除する必要がある場合は、LinkedHashSet を使用できます。

import java.util.LinkedHashSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

3. TreeSet を使用して重複を削除する
TreeSet は順序付きセットであり、デフォルトで要素が自然に並べ替えられます。 TreeSet の重複排除機能を使用すると、配列内の要素を TreeSet に追加し、TreeSet を配列に変換して重複排除を実現できます。

import java.util.TreeSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        TreeSet<Integer> set = new TreeSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

4. Stream API を使用して重複を削除する
Stream API は Java 8 で導入された新しい API であり、ストリーミング操作メソッドを提供します。 Stream の個別のメソッドと組み合わせると、重複した配列を簡単に削除できます。

import java.util.Arrays;
import java.util.stream.IntStream;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        int[] result = IntStream.of(array).distinct().toArray();
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

5. 二重ループを使用して重複を削除する
最後の方法は、二重ループを使用して配列を走査し、重複要素をマークして削除します。

import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        int length = array.length;
        for(int i=0;i<length-1;i++){
            if(array[i]!=-1){
                for(int j=i+1;j<length;j++){
                    if(array[j]==array[i]){
                        array[j] = -1; // 标记为重复元素
                    }
                }
            }
        }
        int[] result = new int[length];
        int index = 0;
        for(int i=0;i<length;i++){
            if(array[i]!=-1){
                result[index++] = array[i];
            }
        }
        return Arrays.copyOf(result, index);
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

上記の紹介を通じて、Java 配列の重複排除の 5 つの実践的な方法を詳細に説明し、具体的なコード例を示しました。実際の状況とニーズに応じて、アレイの重複排除の問題を解決する適切な方法を選択できます。この記事が実際の開発に役立つことを願っています。

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

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