Maison >Java >javaDidacticiel >Comment puis-je stocker des paires de valeurs en Java sans clés uniques ?
Introduction :
Lorsque l'on travaille avec des structures de données en Java, on rencontre souvent le besoin d'une collection qui stocke des paires de valeurs avec des types distincts. Bien que Java fournisse des cartes à cet effet, ils appliquent une clé unique pour chaque entrée, ce qui n'est pas toujours souhaité. Cet article explore une solution alternative pour stocker des paires de valeurs : AbstractMap.SimpleEntry.
Réponse :
AbstractMap.SimpleEntry est une classe pratique pour représenter des paires de valeurs. Il implémente l'interface Map.Entry, fournissant des méthodes pour accéder et modifier la clé et la valeur. Cependant, contrairement à Maps, SimpleEntry ne nécessite pas de clé unique pour chaque paire.
Implémentation :
Pour utiliser AbstractMap.SimpleEntry, vous pouvez créer une ArrayList d'objets SimpleEntry. , spécifiant les types de clé et de valeur lors de l'instanciation. Voici un exemple :
java.util.List<java.util.Map.Entry<String, Integer>> pairList = new java.util.ArrayList<>(); // Create and add pairs to the list java.util.Map.Entry<String, Integer> pair1 = new java.util.AbstractMap.SimpleEntry<>("Not Unique key1", 1); java.util.Map.Entry<String, Integer> pair2 = new java.util.AbstractMap.SimpleEntry<>("Not Unique key2", 2); pairList.add(pair1); pairList.add(pair2);
Personnalisation :
Pour plus de commodité, vous pouvez créer une sous-classe d'ArrayList qui fournit une méthode "of" pour créer et ajouter facilement paires à la liste. Cela simplifie encore la syntaxe :
public class TupleList<T> extends ArrayList<T> { public static <S, U> TupleList<Map.Entry<S, U>> of(S key, U value) { Map.Entry<S, U> pair = new AbstractMap.SimpleEntry<>(key, value); TupleList<Map.Entry<S, U>> tupleList = new TupleList<>(); tupleList.add(pair); return tupleList; } } // Usage TupleList<Map.Entry<String, Integer>> pair = new TupleList<>(); pair.of("Not Unique key1", 1); pair.of("Not Unique key2", 2);
En utilisant AbstractMap.SimpleEntry, les développeurs peuvent stocker efficacement les données par paires de types différents, en maintenant l'ordre sans contraintes d'unicité clés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!