Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查O(1)设置的java中是否存在项_Java_Set - Fatal编程技术网

检查O(1)设置的java中是否存在项

检查O(1)设置的java中是否存在项,java,set,Java,Set,我正在使用一套项目 Set<Objects> myObjects 设置MyObject 此集合可能包含数千项。对我来说,通过O(1)检查此集合中是否存在项是很重要的 我知道对于集合有一个包含方法,但它的工作顺序是什么?O(1)能用吗 另外,如果没有效率,如何通过O(1)检查是否存在?HashSet.contains()的预期运行时间为O(1) 从: 该类为基本操作(添加、删除、包含和大小)提供恒定的时间性能。假设哈希函数将元素正确地分散在存储桶中。迭代这个集合需要的时间与Hash

我正在使用一套
项目

Set<Objects> myObjects
设置MyObject
集合
可能包含数千项。对我来说,通过O(1)检查此
集合中是否存在项是很重要的

我知道对于
集合
有一个
包含
方法,但它的工作顺序是什么?O(1)能用吗

另外,如果没有效率,如何通过O(1)检查是否存在?

HashSet.contains()
的预期运行时间为
O(1)

从:

该类为基本操作(添加、删除、包含和大小)提供恒定的时间性能。假设哈希函数将元素正确地分散在存储桶中。迭代这个集合需要的时间与HashSet实例的大小(元素数)加上支持HashMap实例的“容量”(bucket数)之和成比例。因此,如果迭代性能很重要,那么不要将初始容量设置得太高(或负载系数太低),这一点非常重要


Set
-实现预期通过
O(1)
查找值。但是,这意味着您正在存储的对象提供了一个新的功能

在Java 8中,您可以使用以下代码提供良好且高效的哈希:

Objects.hash(value1, value2, value3);

如果正确使用
contains
-method of
HashSet
应该可以正常工作(这非常快;)。

Set
是一个接口