javaを使用し、リスト内の重複データを抽出する方法は?

リスト内の重複データを見つけるには、2 つの方法があります。

方法1:2つのループを使用して、各要素が重複しているかどうかを比較

List<Integer> list = Arrays.asList(1, 2, 3, 4, 1, 2, 3);
List<Integer> duplicates = new ArrayList<>();

for (int i = 0; i < list.size(); i++) {
    for (int j = i + 1; j < list.size(); j++) {
        if (list.get(i).equals(list.get(j))) {
            duplicates.add(list.get(i));
        }
    }
}

System.out.println(duplicates); // 输出 [1, 2, 3]

方法2:HashMap を使用して各要素の出現回数をカウントし、出現回数が 1 より大きい要素を見つける。

List<Integer> list = Arrays.asList(1, 2, 3, 4, 1, 2, 3);
Map<Integer, Integer> countMap = new HashMap<>();
List<Integer> duplicates = new ArrayList<>();

for (int num : list) {
    if (countMap.containsKey(num)) {
        countMap.put(num, countMap.get(num) + 1);
    } else {
        countMap.put(num, 1);
    }
}

for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
    if (entry.getValue() > 1) {
        duplicates.add(entry.getKey());
    }
}

System.out.println(duplicates); // 输出 [1, 2, 3]

この2つの方法はどちらもList 内の重複データを検出できます。実際のニーズに応じてどちらを使用するかを選択できます。

bannerAds