Javaで重複を削除しながら2つの配列をマージする方法は?
HashSetを使えば、配列の重複を排除してマージすることができます。HashSetはJavaのコレクションであり、自動的に重複を処理します。
以下に具体的にご説明します。
- マージした配列の要素を重複なく格納するHashSetオブジェクトを作成します。
- 最初の配列の要素を一つずつHashSetに追加する。
- セカンドの配列の要素を順番にHashSetに追加します。
- HashSetを配列に変換することで、重複が削除された結合された配列を取得できます。
以下のコードは例です:
import java.util.Arrays;
import java.util.HashSet;
public class ArrayMergeAndDistinct {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {2, 3, 4, 5};
int[] mergedArray = mergeAndDistinct(arr1, arr2);
System.out.println(Arrays.toString(mergedArray));
}
public static int[] mergeAndDistinct(int[] arr1, int[] arr2) {
HashSet<Integer> set = new HashSet<>();
for (int i : arr1) {
set.add(i);
}
for (int i : arr2) {
set.add(i);
}
int[] mergedArray = new int[set.size()];
int index = 0;
for (int i : set) {
mergedArray[index++] = i;
}
return mergedArray;
}
}
結果が [1, 2, 3, 4, 5] になります