给定一个可能包含重复项的列表(如下所示),我需要能够计算唯一元素的数量。
List<String> list = new ArrayList<String>();
list.add("M1");list.add("M1");
list.add("M2");list.add("M2");
list.add("M3");list.add("M3");
我认为可以通过使用Java的Set来完成。如何将列表项复制到集合中,如何从集合中获取计数?
答案 0 :(得分:4)
我希望我能正确理解这个问题。听起来你正在尝试使用java的Set
类来计算ArrayList中唯一条目的数量。如果是这样,您需要:
示例:
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());
编辑:此解决方案(出于实际目的)与Alexey的解决方案相同。 Alexey刚刚在编写解决方案时发布了。
答案 1 :(得分:3)
...
List<String> list = new ArrayList<String>();
list.add("M1");list.add("M1");
list.add("M2");list.add("M2");
list.add("M3");list.add("M3");
HashSet hashSet = new HashSet();
hashSet.addAll(list);
System.out.println(hashSet.size());
...
它给出了 -
3