Я уверен, что вы хотите хэш-карту.Они работают быстрее всего и экономят память.Как также отмечалось в других ответах, String работает как отличный ключ, поэтому вам не нужно ничего переопределять.(Это также относится к следующему.)
Основной альтернативой является TreeMap .Это медленнее и использует немного больше памяти.Однако это намного более гибко.Та же карта будет отлично работать с 5 записями и 5 миллионами записей.Вам не нужно заранее это указывать.Если ваш список сильно различается по размеру, TreeMap будет захватывать память по мере необходимости и отпускать, когда этого не происходит.Хеш-карты не так хороши в том, чтобы отпускать, и, как я объясню ниже, они могут быть неудобны, когда занимают больше памяти.
TreeMap лучше работает с сборщиками мусора.Они просят памяти маленькими, легко найденными кусками.Если вы запустите хеш-таблицу с местом для 100 000 записей, когда она заполнится, она освободит массив из 100 000 элементов (почти мегабайт на 64-битной машине) и запросит еще более крупный.Если он делает это неоднократно, он может опередить GC, который имеет тенденцию генерировать исключение нехватки памяти, а не тратить много времени на сбор и концентрацию разбросанных битов свободной памяти.(Он предпочитает поддерживать свою репутацию скорости за счет репутации вашей машины как имеющей много памяти. Вы действительно можете исчерпать память, если 90% вашей кучи не используется, потому что она фрагментирована.)
Так что, если вы запускаете программу с полным наклоном, ваш список имен сильно различается по размеру - и, возможно, у вас даже есть несколько списков имен, сильно различающихся по размеру - TreeMap будет работать намного лучше для вас.
Хеш-карта, несомненно, будет именно тем, что вам нужно.Но когда все становится по-настоящему сумасшедшим, появляется ConcurrentSkipListMap .Это все, что есть в TreeMap, за исключением того, что оно немного медленнее.С другой стороны, он позволяет добавлять, обновлять, удалять и читать из нескольких потоков, без синхронизации, без синхронизации.(Я упоминаю это только для полноты.)