Вопросы о классах карты библиотеки Java?
1 ответ
HashMap - это структура данных, состоящая из ключей и значений. Значения хранятся в HashMap со связанным ключом. Затем значения можно получить, вызвав их из HashMap с тем же ключом, который вы использовали при вводе значения.
1
TreeMaps и LinkedHashMaps являются разными версиями карты. HashMap использует хеширование для хранения своих ключей, тогда как TreeMap использует двоичное дерево поиска для хранения своих ключей, а LinkedHashMap использует LinkedList для хранения ключей. Если вы перебираете HashMap, ключи будут возвращены в порядке сортировки по хешу (в большинстве случаев непредсказуемо), потому что именно так они хранились. TreeMap, однако, имеет дерево всех значений, поэтому при выполнении итерации по дереву вы получите все ключи в фактическом отсортированном порядке. LinkedHashMap имеет ключи в упорядоченном списке, поэтому итератор возвращает ключи в том же порядке, в котором вы их вставили.
2, 3 и 5
В HashMap значения ищутся по их ключам. Если у вас есть дубликаты ключей, HashMap не может знать, какое значение вернуть. Поэтому каждый ключ в HashMap должен быть уникальным, но значения не должны быть.
4
В обычном HashMap ключ хэшируется, а затем вставляется в соответствующее место. С TreeMap и LinkedHashMap у вас есть дополнительные накладные расходы на вставку ключа в дерево или связанный список, что потребует дополнительного времени и памяти.