【问题标题】:Using Java's built-in Set classes to count unique values from a list [duplicate]使用Java的内置Set类来计算列表中的唯一值[重复]
【发布时间】:2013-08-06 21:58:53
【问题描述】:

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

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

【问题讨论】:

  • 贴一些代码和你一起尝试解决问题,以及你遇到的具体问题。
  • 不要忘记列表构造函数中的括号和分号。
  • 我喜欢这个所谓的重复问题是如何在这个问题出现之后被问到的......而且是由同一个人提出的。编辑这个问题不是更容易吗? :P

标签: java list set


【解决方案1】:

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

  • 做一个Set(你必须使用一个具体的类,我将在示例中使用HashSet)
  • 遍历 ArrayList,并将这些项目(在本例中为字符串)放入集合中。 (我将使用 addAll 方法)
  • 获取集合的大小

例子:

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 刚刚在我编写解决方案时发布。

【讨论】:

  • 我标记为正确答案,但实际上有人更改了主题和内容的名称。
【解决方案2】:
...
        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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 2019-09-05
    相关资源
    最近更新 更多