HashSet - 在HashSet O(1)中访问/查找对象?

时间:2017-03-29 15:29:59

标签: java arrays hashset

访问数组中特定对象/数据的平均复杂度为O(n),此处n为数组长度。 用于在Java的HashSet中查找元素是O(1)吗?

HashSet<String> set=new HashSet<String>();  
......
System.out.print(set.contains(Some_string);

contains(String)方法是否在O(1)处执行?

2 个答案:

答案 0 :(得分:2)

是。基本操作(添加,删除,包含和大小)以恒定时间运行。

http://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html

答案 1 :(得分:1)

是的,在HashSet中访问和查找元素是O(1)。

HashSet使用散列技术存储元素。 HashSet的另一个重要特性是它只包含唯一元素。例如,您可以检查HashSet中是否已存在该元素。

HashSet<Integer> hs = new HashSet<String();
if(hs.add(10) == false) {
  //do something
}
相关问题