使用Java的内置Set类来计算列表中List值中的EACH(关键字)唯一元素

Eld*_*nov 2 java list set

给定一个可能包含重复项的列表(如下所示),我需要能够计算每个(关键字)数量的唯一元素.

List<String> list = new ArrayList<String>();
Set<String> set = new HashSet<String>();
list.add("M1");
list.add("M1");
list.add("M2");
list.add("M3");

set.addAll(list);
System.out.println(set.size());
Run Code Online (Sandbox Code Playgroud)

如何从列表中获取每个唯一元素的计数?这意味着我想知道列表(列表)中包含多少"M1","M2"等多少.

The result should be the following:
2 M1
1 M2
1 M3
Run Code Online (Sandbox Code Playgroud)

Jig*_*shi 5

您正在寻找Map<String, Integer>数据结构,而不是Set

就像是

for(iterating over something){ 
    Integer count =map.get(value); 
    if( count == null){
          map.put(value, 1);


    } else{
        count++;
        map.put(value, count);
    }

}
Run Code Online (Sandbox Code Playgroud)

Map是唯一映射到值的数据结构