Мягкий / слабый ключ MapMAker с равными для ключа - PullRequest
1 голос
/ 17 мая 2010

Мне нужна карта одновременного хэширования со слабыми или мягкими клавишами, если равенство равно, а не ==.

Для ключей такого типа коллекция Google выбирает == по умолчанию.

Есть ли способ отменить этот выбор? Как мне поступить?

С уважением,

Nicolas.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2012

Вы можете использовать java.util.WeakHashMap, завернутый с вызовом на Collections.synchronizedMap()

Это не будет так же быстро, как ConcurrentHashMap, если конфликт потоков значительный. Но у него есть поведение, которое вы хотите.

0 голосов
/ 17 мая 2010

Вы не можете сделать это в Google-коллекциях. Вы не можете сделать это в гуаве в настоящее время. Однако они недавно добавили интерфейс Эквивалентность и реализации, которые вы ожидаете от него (equals, null * -aware equals и ==), и похоже, что они может позволить вам указать, что Equivalence будет использоваться для ключей / значений в будущем (см. , эта проблема ). MapMaker Код, похоже, претерпевает некоторые изменения в это время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...