-1

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

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 来完成。如何将列表项复制到集合中,以及如何从集合中获取计数?

4

2 回答 2

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
于 2013-08-06T22:05:09.263 回答
3

我希望我能正确理解这个问题。听起来您正在尝试使用 java 的Set类来计算 ArrayList 中唯一条目的数量。如果是这样,您需要:

  • 做一个集合(你必须使用一个具体的类,我将在示例中使用 HashSet)
  • 遍历 ArrayList,并将这些项目(在本例中为字符串)放入集合中。(我将使用 addAll 方法)
  • 获取 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());

编辑:此解决方案(出于实际目的)与 Alexey 的解决方案相同。Alexey 刚刚在我编写解决方案时发布。

于 2013-08-06T22:06:37.883 回答