Временная сложность методов HashMap

Поскольку я работаю над временной сложностью, я искал в библиотеке классов Java Oracle временную сложность некоторых стандартных методов, используемых в списках, картах и ​​классах. (более конкретно, ArrayList, HashSet и HashMap)

Теперь, глядя на страницу javadoc HashMap , они действительно говорят только о get () и put ()

Методы, которые мне еще нужно знать:

remove(Object o)
size()
values()

Я думаю, что remove () будет той же сложностью, что и get () , O ( 1) , предполагая, что у нас нет гигантской HashMap с равными хэш-кодами и т. Д. И т. Д.

Для size () я бы также предположил O (1) , поскольку HashSet, который также не имеет порядка, имеет метод size () со сложностью O (1) .

Я понятия не имею, что это values ​​() - я не уверен, будет ли этот метод каким-то образом "копировать" HashMap, давая временная сложность O (1) , или если потребуется выполнить итерацию по HashMap, делая сложность равной количеству элементов, хранящихся в HashMap.

Спасибо.

21
задан pelumi 29 September 2015 в 09:12
поделиться