Вопросы о классах карты библиотеки Java?

Ответы (2) и (4), но не уверены, почему. У меня нет много оснований на эти темы. Может кто-нибудь объяснить, почему это правильные ответы и почему другие неверны. Спасибо

1 ответ

HashMap - это структура данных, состоящая из ключей и значений. Значения хранятся в HashMap со связанным ключом. Затем значения можно получить, вызвав их из HashMap с тем же ключом, который вы использовали при вводе значения.

1

TreeMaps и LinkedHashMaps являются разными версиями карты. HashMap использует хеширование для хранения своих ключей, тогда как TreeMap использует двоичное дерево поиска для хранения своих ключей, а LinkedHashMap использует LinkedList для хранения ключей. Если вы перебираете HashMap, ключи будут возвращены в порядке сортировки по хешу (в большинстве случаев непредсказуемо), потому что именно так они хранились. TreeMap, однако, имеет дерево всех значений, поэтому при выполнении итерации по дереву вы получите все ключи в фактическом отсортированном порядке. LinkedHashMap имеет ключи в упорядоченном списке, поэтому итератор возвращает ключи в том же порядке, в котором вы их вставили.

2, 3 и 5

В HashMap значения ищутся по их ключам. Если у вас есть дубликаты ключей, HashMap не может знать, какое значение вернуть. Поэтому каждый ключ в HashMap должен быть уникальным, но значения не должны быть.

4

В обычном HashMap ключ хэшируется, а затем вставляется в соответствующее место. С TreeMap и LinkedHashMap у вас есть дополнительные накладные расходы на вставку ключа в дерево или связанный список, что потребует дополнительного времени и памяти.

Другие вопросы по тегам