>我必须将我的字符串数据放在集合中,然后仅在存在时才查询。 例如:
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。它具有add
和contains
方法,如Vector。
通常Hashtable
应该更快,因为vector
具有最坏情况下的运行时O(n)
,因为它运行向量并搜索元素。 Hashtables
有更快的访问,因为他们实现了基于哈希值(O(1)
)的保存。
对于您想要实现的目标,最好的选择是使用 Set:
Set<String> mySet = new HashSet<>();
mySet.add(myString);
if(mySet.contains(myString)) {
// do some work
}