2010-05-17 5 views
1

J'ai besoin d'une carte de hachage simultanée avec des touches faibles ou douces où l'égalité est égale et non ==.Clé molle/faible MapMAker avec égal à

Pour ce type de clés, google collection choisit == par défaut.

Existe-t-il un moyen de remplacer ce choix? Comment dois-je procéder? Cordialement,

Nicolas.

+3

Veuillez modifier la question pour décrire en détail ce que vous essayez réellement d'accomplir, et pas seulement une caractéristique manquante particulière qui, selon vous, vous aiderait à le faire. Merci. –

Répondre

0

Vous ne pouvez pas faire cela dans google-collections. Vous ne pouvez pas le faire en guava non plus, actuellement. Cependant, ils ont ajouté une interface Equivalence et les implémentations que vous attendez pour elle (equals, null -Aware equals et ==) récemment et il semble qu'ils pourraient vous permettent de spécifier Equivalence doit être utilisé pour les clés/valeurs dans l'avenir (voir this issue). Le code MapMaker semble subir quelques changements en ce moment.

0

Vous pouvez utiliser java.util.WeakHashMap, enveloppé d'un appel à Collections.synchronizedMap()

Il ne sera pas aussi vite que si un ConcurrentHashMap conflit de thread est significatif. Mais il a le comportement que vous voulez.