Поскольку я работаю над временной сложностью, я искал в библиотеке классов 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.
Спасибо.