Maison >Java >javaDidacticiel >Comment puis-je stocker des paires de valeurs en Java sans clés uniques ?

Comment puis-je stocker des paires de valeurs en Java sans clés uniques ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-05 21:51:42211parcourir

How Can I Store Value Pairs in Java Without Unique Keys?

Une collection Java pour les paires de valeurs : tuples ?

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!

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
Article précédent:Interface et classe abstraiteArticle suivant:Interface et classe abstraite