Оптимальная проверка и получение значения из hashmap - PullRequest
2 голосов
/ 11 апреля 2020

У меня есть хэш-карта с большим количеством значений. Я хочу проверить, есть ли у него ключ Id (из списка), и если он есть, то выполнить метод на нем. Должен ли я сделать это так:

for (int id : myList) {
    if (myHashMap.containsKey(id)) {
         myHashMap.get(id).methodOnObject();
    }
}

Или вот так:

for (int id : myList) {
    myObject temp =  myHashMap.get(id);
    if (temp != null) {
        temp.methodOnObject();
    }
}

Или что-то еще лучше?

1 Ответ

0 голосов
/ 11 апреля 2020

Второй намного лучше. Вы запрашиваете только HashMap для каждого ключевого. Теоретически, временная сложность получения из HashMap постоянна. Однако это зависит от распределения ключей и реализации HashMap. В некоторых случаях это может стать LogN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...