Comment compter les éléments en double dans la liste Java

Comment compter les éléments dupliqués dans la liste Java

Un exemple Java pour vous montrer comment compter le nombre total d'entrées dupliquées dans une liste, en utilisantCollections.frequency etMap.

CountDuplicatedList.java

package com.example;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class CountDuplicatedList {

  public static void main(String[] args) {

    List list = new ArrayList();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    list.add("b");
    list.add("c");
    list.add("a");
    list.add("a");
    list.add("a");

    System.out.println("\nExample 1 - Count 'a' with frequency");
    System.out.println("a : " + Collections.frequency(list, "a"));

    System.out.println("\nExample 2 - Count all with frequency");
    Set uniqueSet = new HashSet(list);
    for (String temp : uniqueSet) {
        System.out.println(temp + ": " + Collections.frequency(list, temp));
    }

    System.out.println("\nExample 3 - Count all with Map");
    Map map = new HashMap();

    for (String temp : list) {
        Integer count = map.get(temp);
        map.put(temp, (count == null) ? 1 : count + 1);
    }
    printMap(map);

    System.out.println("\nSorted Map");
    Map treeMap = new TreeMap(map);
    printMap(treeMap);

  }

  public static void printMap(Map map){

    for (Map.Entry entry : map.entrySet()) {
        System.out.println("Key : " + entry.getKey() + " Value : "
            + entry.getValue());
    }

  }

}

Sortie

Example 1 - Count 'a' with frequency
a : 4

Example 2 - Count all with frequency
d: 1
b: 2
c: 2
a: 4

Example 3 - Count all with Map
Key : d Value : 1
Key : b Value : 2
Key : c Value : 2
Key : a Value : 4

Sorted Map
Key : a Value : 4
Key : b Value : 2
Key : c Value : 2
Key : d Value : 1