Heim >Java >javaLernprogramm >Wann sollte ich „AbstractMap.SimpleEntry' anstelle von Javas „Map' für Wertepaare verwenden?
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.
Um AbstractMap.SimpleEntry zu verwenden, befolgen Sie diese Schritte:
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));
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!