Почему Гуава не предоставляет способ преобразования ключей карты

Этот вопрос уже виден здесь:Как конвертировать карту <Строка, Строка> на карту <Длинный, Строка> используя гуаву

Я думаю, что ответ CollinD уместен:

Все гуавыМетоды преобразования и фильтрации дают ленивые результаты ... функция / предикат применяется только при необходимости, когда используется объект. Они нет создавать копии. Однако из-за этого преобразование может легко нарушить требования.Set

Позволять'скажем, например, у вас естьMap который содержит оба "1" а также "01" в качестве ключей. Они оба разныеStringс, и такMap может на законных основаниях содержать оба ключа. Если вы преобразуете их, используяLong.valueOf(String)Тем не менее, они оба отображаются на значение1, Они больше не являются отдельными ключами. Это н'не сломать ничего, если вы создадите копию карты и добавите записи, потому что любые дублирующиеся ключи будут перезаписывать предыдущую запись для этого ключа. Лениво преображаетсяMapтем не менее, не было бы никакого способа принудительного применения уникальных ключей и, следовательно, нарушил бы контракт с.Map

Это правда, но на самом деле я нене понимаю, почему это не сделано, потому что:

Когда происходит преобразование ключа, если 2 ключа "слиты»может возникнуть исключительная ситуация во время выполнения или мы можем передать флаг, чтобы указать Guava принять любое значение из нескольких возможных значений для вновь вычисленного ключа (failfast / failsafe возможно)

Мы могли бы иметь Maps.transformKeys, который создает Multimap

Есть ли у меня недостатокне вижу в таких вещах?

Ответы на вопрос(1)

Ваш ответ на вопрос