Подтвердить что ты не робот

Как я могу использовать HashMap с уникальными ключами в java?

Как я могу использовать HashMap с уникальными ключами в Java? Или даже имеет смысл иметь уникальные ключи в HashMap или ключи уникальны по умолчанию? Я новичок. ТНХ

4b9b3361

Ответ 1

Ключи уникальны во всех картах. Разница между различными реализациями карт связана с возможностью нулевых ключей, порядка итераций и concurrency.

Ответ 2

Ключ карты хэш уникален. Добавьте дубликат ключа, затем он будет перезаписан.

 HashMap hm = new HashMap();
 hm.put("1", new Integer(1));
 hm.put("2", new Integer(2));
 hm.put("3", new Integer(3));
 hm.put("4", new Integer(4));
 hm.put("1", new Integer(5));// value integer 1 is overwritten by 5

По умолчанию Hashmap не синхронизирован.

Ответ 3

Попробуйте посмотреть Java API for Map, который является интерфейсом, который реализует HashMap. Первое предложение:

Объект, который сопоставляет ключи значениям. Карта не может содержать дубликаты ключей; каждый ключ может отображать не более одного значения.

Ответ 4

HasMap имеет уникальные ключи. as.keySet() возвращает Set, который имеет уникальные члены

Ответ 5

HashMap - это коллекция для хранения (ключ, значение) пар и согласно документации HashMap ключи всегда уникальны.

Если вы добавите ключ, который уже существует (столкновение) в hashmap, старое значение будет заменено.

Ответ 6

Общий хэш файл обычно реализуется как ассоциативный массив, поэтому пусть ваш массив имеет N элементов, от 0 до N-1, когда вы хотите добавить новую пару (ключ, значение), что она сделала за кулисами (концептуально):

  • index = hash (key) mod N
  • массив [index] = значение

Таким образом, по построению ключ сопоставляется с одним и только одним элементом массива.

Обратите внимание, что это на самом деле немного сложнее, чем это: я игнорирую такие вещи, как обработка столкновений, переименование и т.д., у вас может быть хорошая общая идея здесь https://en.wikipedia.org/wiki/Hash_table