给定一个可能包含重复项的列表(如下所示),我需要能够计算每个(关键字)数量的唯一元素.
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)
您正在寻找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是唯一映射到值的数据结构