x.5*_*509 2 java algorithm hashtable hashmap
我有一组值,一个arraylist,我必须找到重复的键.一种方法是使用2个循环.并遍历列表中的每个值重新排列O(n2).
另一件事,我能做的就是将值作为键放在HashTable中.我相信,如果哈希表中已经存在相同的密钥,则会抛出异常.但它并没有抛出异常
Hashtable<String, String> ht = new Hashtable<String, String>();
for (int i = 0; i<20; i++){
ht.put(String.valueOf(i%10), String.valueOf(i%10));
}
Run Code Online (Sandbox Code Playgroud)
我明白错了吗?如果hastable/hashmap中已存在相同的密钥,那么它是否会抛出异常?
我的建议是你要一个HashSet而不是一个Hashtable:
Set<String> ht = new HashSet<String>();
for (int i = 0; i<20; i++){
if ( !ht.add(String.valueOf(i%10)) ) {
//it already existed, throw an exception or whatever
}
}
Run Code Online (Sandbox Code Playgroud)
如果你不关心你添加到地图的值,你几乎肯定想要一个Set而不是一个Map/ table.