Vector.contains() 或 Hashtable.get() 哪个更好



>我必须将我的字符串数据放在集合中,然后仅在存在时才查询。 例如:

Vector<String> v = new Vector<String>();
v.add("a");
v.add("b");
if(v.contains("a")){}
Hashtable<String, String> ht = new Hashtable<String, String>()
ht.put("a");
ht.put("b");
if(ht.get("a") != null){} 

哪种方式更好,或者有更好的解决方案?

编辑:这是一个大数据,我正在寻找最快的解决方案。

两者都被认为是过时的 - 如果你只需要检查存在,你可以使用HashSet。它具有addcontains方法,如Vector。

通常Hashtable应该更快,因为vector具有最坏情况下的运行时O(n),因为它运行向量并搜索元素。 Hashtables有更快的访问,因为他们实现了基于哈希值(O(1))的保存。

对于您想要实现的目标,最好的选择是使用 Set:

Set<String> mySet = new HashSet<>();
mySet.add(myString);
if(mySet.contains(myString)) {
    // do some work
}

最新更新