1. ホーム
  2. java

[解決済み] リスト内の重複を識別する

2022-05-25 09:28:51

質問

Integer型のリストがあります。

[1, 1, 2, 3, 3, 3]

重複しているものをすべて返すメソッドが欲しいです。

[1, 3]

どのような方法があるのでしょうか?

どのように解決するのですか?

方法 addSet は、値が既に存在するかどうかをブール値で返します(存在しない場合はtrue、既に存在する場合はfalse。 セットドキュメント ).

だから、すべての値を繰り返し処理すればいいのです。

public Set<Integer> findDuplicates(List<Integer> listContainingDuplicates)
{ 
  final Set<Integer> setToReturn = new HashSet<>(); 
  final Set<Integer> set1 = new HashSet<>();

  for (Integer yourInt : listContainingDuplicates)
  {
   if (!set1.add(yourInt))
   {
    setToReturn.add(yourInt);
   }
  }
  return setToReturn;
}