Voilà public static class AbstractMap.SimpleEntry<K,V>
. Ne laissez pas la Abstract
partie du nom vous induire en erreur: ce n'est en fait PAS une abstract
classe (mais son niveau supérieurAbstractMap
est).
Le fait qu'il s'agisse d'une static
classe imbriquée signifie que vous N'AVEZ PAS besoin d'une AbstractMap
instance englobante pour l'instancier, donc quelque chose comme ça se compile bien:
Map.Entry<String,Integer> entry =
new AbstractMap.SimpleEntry<String, Integer>("exmpleString", 42);
Comme indiqué dans une autre réponse, Guava a également une static
méthode d'usine pratique Maps.immutableEntry
que vous pouvez utiliser.
Tu as dit:
Je ne peux pas Map.Entry
m'utiliser car apparemment c'est un objet en lecture seule que je ne peux pas instancier de nouveauinstanceof
Ce n'est pas tout à fait exact. La raison pour laquelle vous ne pouvez pas l'instancier directement (c'est-à-dire avec new
) est que c'est un interface Map.Entry
.
Avertissement et conseil
Comme il est indiqué dans la documentation, AbstractMap.SimpleEntry
est@since 1.6
, donc si vous êtes bloqué sur 5.0, alors il n'est pas disponible pour vous.
Pour rechercher une autre classe connue qui implements Map.Entry
, vous pouvez en fait aller directement au javadoc. Depuis la version Java 6
Carte d'interface.
Toutes les classes d'implémentation connues :
Malheureusement, la version 1.5 ne répertorie aucune classe d'implémentation connue que vous pouvez utiliser, vous pouvez donc être bloqué par l'implémentation de la vôtre.