访问数组中特定对象/数据的平均复杂度为O(n),此处n为数组长度。 用于在Java的HashSet中查找元素是O(1)吗?
HashSet<String> set=new HashSet<String>();
......
System.out.print(set.contains(Some_string);
contains(String)
方法是否在O(1)处执行?
答案 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
}