Maison >Java >javaDidacticiel >Quand dois-je utiliser « AbstractMap.SimpleEntry » au lieu de « Map » de Java pour les paires de valeurs ?

Quand dois-je utiliser « AbstractMap.SimpleEntry » au lieu de « Map » de Java pour les paires de valeurs ?

DDD
DDDoriginal
2024-12-16 07:05:15999parcourir

When Should I Use `AbstractMap.SimpleEntry` Instead of Java's `Map` for Value Pairs?

Une alternative à la carte Java pour stocker 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.

Utilisation de AbstractMap.SimpleEntry

Pour utiliser AbstractMap.SimpleEntry, suivez ces étapes :

  1. Créer une instance : Instancier un objet SimpleEntry, en spécifiant les types des valeurs qu'il contiendra.
  2. Ajouter des entrées : Utilisez la méthode add() de votre collection pour ajouter des instances SimpleEntry à votre collection.
  3. Accès aux valeurs : Récupérez les valeurs de SimpleEntry à l'aide des méthodes getKey() et getValue().

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));

Méthodes pratiques et sous-classements

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn