Heim >Java >javaLernprogramm >Wann sollte ich „AbstractMap.SimpleEntry' anstelle von Javas „Map' für Wertepaare verwenden?

Wann sollte ich „AbstractMap.SimpleEntry' anstelle von Javas „Map' für Wertepaare verwenden?

DDD
DDDOriginal
2024-12-16 07:05:15999Durchsuche

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

Eine Alternative zu Javas Map zum Speichern von Wertepaaren

Java stellt die Map-Datenstruktur zum Verwalten von Schlüssel-Wert-Paaren bereit, sodass Sie für jeden Eintrag spezifische Typen definieren können. Wenn Sie jedoch eine Sammlung von Wertepaaren benötigen, bei denen jedes Element aus zwei Werten mit unterschiedlichen Typen besteht, ist die Map möglicherweise nicht die ideale Lösung.

Um dieses Problem zu beheben, bietet Java eine Alternative: die AbstractMap .SimpleEntry-Klasse. Mit dieser Klasse können Sie einen Eintrag erstellen, der ein Wertepaar enthält, wobei jeder Wert seinen eigenen Typ haben kann.

AbstractMap.SimpleEntry verwenden

Um AbstractMap.SimpleEntry zu verwenden, befolgen Sie diese Schritte:

  1. Erstellen Sie eine Instanz: Instanziieren Sie ein SimpleEntry-Objekt und geben Sie die Typen an der Werte, die es enthalten wird.
  2. Einträge hinzufügen:Verwenden Sie die add()-Methode Ihrer Sammlung, um SimpleEntry-Instanzen zu Ihrer Sammlung hinzuzufügen.
  3. Zugriff auf Werte : Rufen Sie die Werte aus SimpleEntry mit den Methoden getKey() und getValue() ab.

Für Beispiel:

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

Komfortable Methoden und Unterklassen

Um den Prozess zu vereinfachen, können Sie die Methode createEntry() verwenden, um SimpleEntry-Instanzen mit den gewünschten Typen zu erstellen. Darüber hinaus können Sie eine Unterklasse der ArrayList-Klasse erstellen und eine of()-Methode verfügbar machen, um die Syntax noch prägnanter zu gestalten.

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

Dies ermöglicht eine prägnantere Syntax zum Erstellen und Hinzufügen von Paaren zu Ihrer Sammlung.

Das obige ist der detaillierte Inhalt vonWann sollte ich „AbstractMap.SimpleEntry' anstelle von Javas „Map' für Wertepaare verwenden?. 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