この投稿では、Javaのリストで重複を識別する方法について説明します。

1.使用する Set

簡単な解決策は、リスト内のすべての値を反復処理し、各要素をに挿入することです HashSet。現在の要素がすでにセットに存在する場合、それは重複しています。新しいリストで見つかったすべての重複を収集できます。

これは、Java8Streamを使用して簡単に実行できます。ソリューションはの戻り値を使用することに注意してください Set.add() 値がセットにすでに存在するかどうかを判断する方法

ダウンロード  コードを実行する

出力:

[1, 3]

 
上記のコードは、次のコードと同等です(Java 7以下の場合)。

ダウンロード  コードを実行する

出力:

[1, 3]

2.使用する Collections.frequency() 方法

最も簡単な方法は、おそらく各リスト要素の頻度をカウントして、それが重複しているかどうかを判断することです。あなたは使用することができます Collections.frequency() このためのメソッド。コレクション内の要素の数を返します。

StreamAPIを使用したコードは次のとおりです。

ダウンロード  コードを実行する

出力:

[1, 3]

 
これは、次のことと同じです。

ダウンロード  コードを実行する

出力:

[1, 3]

3.使用する Collectors.groupingBy() 関数

上記のソリューションは、 Collections.frequency() リストの各要素のメソッド。より良い解決策は、頻度マップを作成し、それを使用して要素が複製されているかどうかを判断することです。次のJava8ソリューションは、Streamsを使用して、頻度が1を超えるアイテムをフィルタリングします。

ダウンロード  コードを実行する

出力:

[1, 3]

これで、Javaのリストで重複を特定できます。