Heim >Java >javaLernprogramm >Wie kann ich Wertepaare in Java ohne eindeutige Schlüssel speichern?

Wie kann ich Wertepaare in Java ohne eindeutige Schlüssel speichern?

Susan Sarandon
Susan SarandonOriginal
2025-01-05 21:51:42212Durchsuche

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

Eine Java-Sammlung für Wertepaare: Tupel?

Einführung:
Bei der Arbeit mit Datenstrukturen in Java stößt man oft auf das Bedarf an einer Sammlung, die Wertepaare mit unterschiedlichen Typen speichert. Während Java für diesen Zweck Karten bereitstellt, erzwingen sie einen eindeutigen Schlüssel für jeden Eintrag, was möglicherweise nicht immer erwünscht ist. Dieser Artikel befasst sich mit einer alternativen Lösung zum Speichern von Wertepaaren: AbstractMap.SimpleEntry.

Antwort:

AbstractMap.SimpleEntry ist eine praktische Klasse zur Darstellung von Wertepaaren. Es implementiert die Map.Entry-Schnittstelle und stellt Methoden für den Zugriff und die Änderung des Schlüssels und Werts bereit. Im Gegensatz zu Maps erfordert SimpleEntry jedoch keinen eindeutigen Schlüssel für jedes Paar.

Implementierung:

Um AbstractMap.SimpleEntry zu verwenden, können Sie eine ArrayList von SimpleEntry-Objekten erstellen , wobei die Typen des Schlüssels und Werts bei der Instanziierung angegeben werden. Hier ist ein Beispiel:

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

Anpassung:

Für zusätzlichen Komfort können Sie eine Unterklasse von ArrayList erstellen, die eine „of“-Methode zum einfachen Erstellen und Hinzufügen bereitstellt Paare zur Liste hinzufügen. Dies vereinfacht die Syntax weiter:

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

Durch die Verwendung von AbstractMap.SimpleEntry können Entwickler Daten effizient in Paaren mit unterschiedlichen Typen speichern und dabei die Reihenfolge ohne wesentliche Eindeutigkeitsbeschränkungen beibehalten.

Das obige ist der detaillierte Inhalt vonWie kann ich Wertepaare in Java ohne eindeutige Schlüssel speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn