0

例如:String[] str = {"M1","M1","M1","M2","M3"};
最推荐的是答案 - HashSet。哪种方法或您有更好的主意?

4

5 回答 5

6

除非你想自己实现这个,否则 aSet是要走的路。一个集合只允许添加唯一元素,并会自动过滤重复项。

HashSet 功能的工作原理如下:

为对象计算哈希。接下来,该集合检查是否有任何具有相同哈希值的对象.equals()是新值。如果是这样,则忽略新值。如果不是,则将其添加到集合中。

如果您将所有内容添加到集合中,然后询问其大小,您将获得唯一元素的数量。

于 2013-08-05T14:07:37.733 回答
2
new HashSet(Arrays.asList(str)).size();
于 2013-08-05T14:07:27.760 回答
1

我更喜欢使用本机已经提供的东西。您的要求是Set.

您可以执行以下操作 -

Set<String> set = new HashSet<String>(Arrays.asList(str));
set.size();
于 2013-08-05T14:08:25.397 回答
1

你也可以试试这个

    String[] str = {"M1","M1","M1","M2","M3"};
    HashMap<String,String> map=new HashMap<>();
    for(String i:str){
        map.put(i, i);
    }
    System.out.println(map.keySet().size());
于 2013-08-05T14:25:01.383 回答
1

除了像其他答案那样创建临时列表之外,您还可以使用:

Set<String> set = new HashSet<> ();
Collections.addAll(set, str);
int countUnique = set.size();
于 2013-08-05T14:25:05.597 回答