ホームページ >Java >&#&チュートリアル >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 サイトの他の関連記事を参照してください。