-1

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

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){} 

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

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

4

3 回答 3

7

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

于 2013-09-23T07:53:57.573 回答
1

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

于 2013-09-23T07:54:03.370 回答
1

您想要实现的最佳选择是使用Set

Set<String> mySet = new HashSet<>();
mySet.add(myString);
if(mySet.contains(myString)) {
    // do some work
}
于 2013-09-23T07:54:40.090 回答