Voilà public static class AbstractMap.SimpleEntry<K,V>. Ne laissez pas la Abstractpartie du nom vous induire en erreur: ce n'est en fait PAS une abstractclasse (mais son niveau supérieurAbstractMap est).
Le fait qu'il s'agisse d'une staticclasse imbriquée signifie que vous N'AVEZ PAS besoin d'une AbstractMapinstance 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 staticméthode d'usine pratique Maps.immutableEntryque vous pouvez utiliser.
Tu as dit:
Je ne peux pas Map.Entrym'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.SimpleEntryest@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.