РЕДАКТИРОВАТЬ: Вполне возможно, что Шон прав, и я неправильно понял вопрос.
Если исходный список предназначен для ключей , то звучит так, как будто вы можете просто использовать вычислительную карту через MapMaker.makeComputingMap
и игнорировать список ввода начать с. РЕДАКТИРОВАТЬ: Как отмечено в комментариях, теперь это устарело и удалено в Гуаве 15.0. Взгляните вместо этого CacheBuilder
.
С другой стороны, это также не дает вам карту, которая будет возвращать ноль, если вы спросите ее о значении, соответствующем ключу, которого не было в списке для начала. Это также не даст вам Иными словами, это может не быть уместным, но это стоит рассмотреть, в зависимости от того, что вы пытаетесь с ним делать. :)
Я оставлю этот ответ здесь, если вы не прокомментируете, что ни подход здесь не пригодится вам, в этом случае я его удалю.
Оригинальный ответ
Используя Guava , вы можете сделать это довольно легко с помощью Maps.uniqueIndex
:
Map<String, String> map = Maps.uniqueIndex(list, keyProjection);
(я упомянул Guava специально, в отличие от коллекций Google, поскольку я не проверял, содержит ли более старый репозиторий коллекций Google Maps.uniqueIndex
.)