Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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
Java 封装映射的keySet()的时间复杂度<&燃气轮机;价值观_Java_Map_Set_Time Complexity - Fatal编程技术网

Java 封装映射的keySet()的时间复杂度<&燃气轮机;价值观

Java 封装映射的keySet()的时间复杂度<&燃气轮机;价值观,java,map,set,time-complexity,Java,Map,Set,Time Complexity,我需要一个带有签名的HashMap HashMap<Integer, Double> map; 因此,映射变为 Set<CustomKV> customMap; 看起来他们是一模一样的。但我要问的是,如果我一直打电话 for(CustomKV kv : customMap) int key = kv.getKey(); 这会让我慢下来吗,还是Java认识到了这一点,并将customMap视为一个映射?如果类中有两个以上的字段,比如您的示例Set custom

我需要一个带有签名的
HashMap

HashMap<Integer, Double> map;
因此,
映射
变为

Set<CustomKV> customMap;
看起来他们是一模一样的。但我要问的是,如果我一直打电话

for(CustomKV kv : customMap)
    int key = kv.getKey();

这会让我慢下来吗,还是Java认识到了这一点,并将
customMap
视为一个映射?

如果类中有两个以上的字段,比如您的示例
Set customMap

如果只有两个值,最好使用Hashmap

在这两种情况下,我们都可以迭代


但是在Hashmap的情况下,我们可以通过使用
get
方法访问
value
,我们可以避免迭代。

如果有两个以上的字段,我们应该去上课,就像在你的例子中那样。
设置customMap

如果只有两个值,最好使用Hashmap

在这两种情况下,我们都可以迭代

但是在Hashmap的情况下,我们可以使用
key
通过
get
方法访问
value
,我们可以避免迭代。

keySet()
不会创建新的

它只提供地图中关键点的视图。实际上,它只提供了几个操作:迭代(带删除)、大小、空、清除和包含。您不能向其中添加元素,否则它将抛出一个
不支持操作异常

键集()
不会创建新的


它只提供地图中关键点的视图。实际上,它只提供了几个操作:迭代(带删除)、大小、空、清除和包含。您不能向其中添加元素,否则它将抛出一个
不支持操作异常

如果您询问Java的实现,
HashMap
会在第一次调用
keySet()
后缓存集合。但即使是第一个调用也不需要任何迭代,因为它只返回底层条目集的视图或包装器


因此,是的,Java确实优化了它们的实现,但从技术上讲,您可以对自定义集应用相同的优化。

如果您询问Java的实现,
HashMap
会在第一次调用
keySet()
后缓存该集。但即使是第一个调用也不需要任何迭代,因为它只返回底层条目集的视图或包装器


因此,是的,Java确实优化了它们的实现,但从技术上讲,您可以对自定义集应用相同的优化。

您希望访问哪些值?使用CustomKV类而不是Map的原因是什么?如果使用custom
Set
,您会调用什么
方法。@MKorsch我正在使用它来建模图中顶点的邻接列表。为什么迭代
Set
比迭代
Set
效率更高或更低?您想访问哪些值?使用CustomKV类而不是Map的原因是什么?如果使用custom
Set
,您会调用什么
方法。@MKorsch我正在使用它来建模图中顶点的邻接列表。为什么迭代
的效率会比迭代
集的效率高或低?
for(Integer i : map.keySet())

for(CustomKV kv : customMap())
for(CustomKV kv : customMap)
    int key = kv.getKey();