Maison >Java >javaDidacticiel >Quand dois-je utiliser « AbstractMap.SimpleEntry » au lieu de « Map » de Java pour les paires de valeurs ?
Java fournit la structure de données Map pour gérer les paires clé-valeur, vous permettant de définir des types spécifiques pour chaque entrée. Cependant, lorsque vous avez besoin d'une collection de paires de valeurs où chaque élément est constitué de deux valeurs de types distincts, la Map n'est peut-être pas la solution idéale.
Pour résoudre ce problème, Java propose une alternative : la AbstractMap Classe .SimpleEntry. Cette classe vous permet de créer une entrée contenant une paire de valeurs, où chaque valeur peut avoir son propre type.
Pour utiliser AbstractMap.SimpleEntry, suivez ces étapes :
Pour exemple :
// Create a list of SimpleEntry pairs List<Map.Entry<String, Integer>> pairList = new ArrayList<>(); // Add some pairs to the list pairList.add(new AbstractMap.SimpleEntry<>("Not Unique Key 1", 1)); pairList.add(new AbstractMap.SimpleEntry<>("Not Unique Key 2", 2));
Pour simplifier le processus, vous pouvez utiliser la méthode createEntry() pour créer des instances SimpleEntry avec les types souhaités. De plus, vous pouvez sous-classer la classe ArrayList et exposer une méthode of() pour rendre la syntaxe encore plus succincte.
// Create a TupleList class extending ArrayList public class TupleList<E> extends ArrayList<E> { public TupleList() {} // Exposed method for creating and adding SimpleEntry pairs public void of(Object... args) { if (args.length % 2 != 0) { throw new IllegalArgumentException("Number of arguments must be even."); } for (int i = 0; i < args.length; i += 2) { add(new SimpleEntry<>(args[i], args[i + 1])); } } } // Usage TupleList<Map.Entry<String, Integer>> pair = new TupleList<>(); pair.of("Not Unique Key 1", 1); pair.of("Not Unique Key 2", 2);
Cela permet une syntaxe plus concise pour créer et ajouter des paires à votre collection.
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!