在Map上调用values()。size()线性或常量

时间:2013-10-22 23:34:10

标签: java collections hashmap

在java中,HashMap getValues().size()的时间复杂度是多少?它是线性的还是恒定的?我的形象不变,但我不确定。 getValues().get(n)

怎么样?

2 个答案:

答案 0 :(得分:5)

它是不变的,它完全等同于首先调用Map.size()

答案 1 :(得分:0)

public int size() {
  return size;
}

这是源代码。恒定时间。

Map#values()的返回值属于Collection类型,不支持get(n)操作。为了获得n元素,您可能必须遍历集合,这是线性时间。