JavaでArrayListの要素の中に重複する要素があるかどうかを確認して削除する方法を紹介します。
1. Setでリスト重複を削除
HashSetなど、Setは重複要素を許可しないデータ構造です。 重複要素を含むリストをSetに変換すると、重複が削除されます。 重複要素が削除されたSetをリストに戻すと、重複が削除されたListになります。
以下のコードは、リストをSetに変換し、再びSetをリストに変換して重複を削除する例です。
String[] arr = {"a", "b", "c", "d", "a", "e"};
List<String> list = new ArrayList<>(List.of(arr));
Set<String> set = new HashSet<>(list);
List<String> result = new ArrayList<>(set);
System.out.println("result : " + result);
Output:
result : [a, b, c, d, e]
1.1 リストに重複要素があることを確認する
重複要素があるリストのサイズと重複が削除されたリストのサイズを比較して、サイズが異なる場合に重複があると判断できます。
次の例では、Setを使用して重複を削除したリストとサイズを比較します。
String[] arr = {"a", "b", "c", "d", "a", "e"};
List<String> list = new ArrayList<>(List.of(arr));
Set<String> set = new HashSet<>(list);
if (set.size() != list.size()) {
System.out.println("List contains duplicates");
}
Output:
List contains duplicates
2. Stream.distinct() でリストを重複排除
Stream.distinct()
は、Stream の重複要素をすべて削除します。 collect(Collectors.toList())
は重複排除されたストリームの要素をリストに変換して返します。
String[] arr = {"a", "b", "c", "d", "a", "e"};
List<String> list = new ArrayList<>(List.of(arr));
List<String> result = list.stream().distinct().collect(Collectors.toList());
System.out.println("result : " + result);
Output:
result : [a, b, c, d, e]
2.1 リストに重複要素があることを確認する
元のリストのサイズと重複が削除されたリストのサイズを比較して、サイズが異なる場合は重複した要素が存在すると判断できます。
String[] arr = {"a", "b", "c", "d", "a", "e"};
List<String> list = new ArrayList<>(List.of(arr));
if (list.size() != list.stream().distinct().count()) {
System.out.println("List contains duplicates");
}
Output:
List contains duplicates
Related Posts
- Java - AtomicReference使用方法
- Java - CountDownLatchを使用する方法、および例
- Java - ScheduledThreadPoolExecutor使用方法
- Java - SummaryStatisticsの使用方法(count、min、max、average)
- Java8 - 関数型インタフェース (Functional Interface) について
- Java - String配列をint配列に変換する
- Java - ArrayList要素の値を変更する方法、replaceAll()
- Java - 2つのリストが同じかどうかを比較
- Java - 配列から特定のIndex要素を削除する3つの方法
- Java - HashMapソート、4つの方法
- Java - 文字列を配列に変換する方法
- Java - ArrayListが空であることを確認する3つの方法
- Java - ArrayListの巡回、4つの方法
- Java - ArrayListの最大値、最小 値を見つける
- Java - ArrayListの合計、平均値の計算
- Java - HashMap巡回、3つの方法
- Java - do whileとwhileの違い
- Java - Lambda式と関数型インタフェース
- Java - List empty(null)チェック、3つの方法
- Java - ArrayListの初期化、4つの方法
- Java - Stream.reduce()の使い方と例
- Java - 2つのマップを結合する(merge、putAll)
- Java - java.util.Dateをjava.sql.Dateに変換する
- Java - ArrayListをStringに変換する
- Java - ClassNotFoundExceptionの発生原因と解決策
- Java - 非静的メソッドは静的コンテキストから参照できません
- Java - NoSuchMethodErrorの原因と解決策
- Java - JSONライブラリを使用する方法(JSONObject、JSONArray)
- Java - byte[]配列をFileに保存
- Java - byte[]の配列をStringに変換
- Java - ファイルのアクセス権を確認し、変更
- Java - 一時フォルダ(Temp directory)パスを取得する
- Javaでシェルスクリプトを実行
- Java - Streamを配列に変換する
- Java - リスト重複排除、2つの方法