我必须将我的字符串数据放入集合中,然后仅在存在时查询。例如:
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){}
哪种方式更好还是有更好的解决方案?
编辑:这是一个大数据,我正在寻找最快的解决方案。
答案 0 :(得分:7)
两者都被认为已过时 - 如果您只需要检查存在,则可以使用HashSet。它有add
和contains
方法,如Vector。
答案 1 :(得分:1)
通常Hashtable
应该更快,因为vector
具有最差情况运行时O(n)
,因为它遍历向量并搜索元素。 Hashtables
可以更快地访问,因为他们根据哈希值(O(1)
)实施了保存。
答案 2 :(得分:1)
您希望实现的最佳选择是使用Set:
Set<String> mySet = new HashSet<>();
mySet.add(myString);
if(mySet.contains(myString)) {
// do some work
}