例如:String[] str = {"M1","M1","M1","M2","M3"};
最推荐的是答案 - HashSet
。哪种方法或您有更好的主意?
问问题
4357 次
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 回答