JAVAでリスト内の重複したオブジェクトを取得する方法は何ですか?

List内の重複したオブジェクトを取得するためには、次の方法を使用することができます:

  1. リストをループして、各オブジェクトを比較し、重複するオブジェクトを別のリストに追加します。
  2. List list = …; // 元のリスト
    List duplicates = new ArrayList<>(); // 重複するオブジェクトを保存するリストfor (int i = 0; i < list.size(); i++) {
    T current = list.get(i);
    for (int j = i + 1; j < list.size(); j++) {
    T compare = list.get(j);
    if (current.equals(compare)) {
    if (!duplicates.contains(current)) {
    duplicates.add(current);
    }
    break;
    }
    }
    }
  3. Java 8のStream APIとCollectors.groupingByメソッドを組み合わせて、グループ化し、重複したオブジェクトをフィルタリングします。
  4. List list = …; // 原始のリストList duplicates = list.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
    .entrySet()
    .stream()
    .filter(entry -> entry.getValue() > 1)
    .map(Map.Entry::getKey)
    .collect(Collectors.toList());

上記の方法では、比較対象の種類であるTを実際のニーズに応じて置き換えることができます。

bannerAds