Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java-EnumMap

Java-EnumMap

In diesem Tutorial lernen wir die Java-Klasse EnumMap und ihre Operationen anhand von Beispielen kennen.

Der EnumMap Klasse des Java Collections Framework stellt eine Map-Implementierung für Elemente einer Enumeration bereit.

In EnumMap , Enum-Elemente werden als Schlüssel verwendet . Es implementiert die Map-Schnittstelle.

Bevor wir etwas über EnumMap erfahren , informieren Sie sich unbedingt über die Java-Enums.


Eine EnumMap erstellen

Um eine Enum-Map zu erstellen, müssen wir die java.util.EnumMap importieren Paket zuerst. Sobald wir das Paket importiert haben, können wir hier Enum-Maps in Java erstellen.

enum Size {
    SMALL, MEDIUM, LARGE, EXTRALARGE
}

EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);

Im obigen Beispiel haben wir eine Enum-Map mit dem Namen sizes erstellt .

Hier,


Methoden von EnumMap

Die EnumMap Die Klasse stellt Methoden bereit, mit denen wir verschiedene Elemente auf den Enum-Maps ausführen können.


Elemente in EnumMap einfügen

Zum Beispiel

import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes1 = new EnumMap<>(Size.class);

        // Using the put() Method
        sizes1.put(Size.SMALL, 28);
        sizes1.put(Size.MEDIUM, 32);
        System.out.println("EnumMap1: " + sizes1);

        EnumMap<Size, Integer> sizes2 = new EnumMap<>(Size.class);

        // Using the putAll() Method
        sizes2.putAll(sizes1);
        sizes2.put(Size.LARGE, 36);
        System.out.println("EnumMap2: " + sizes2);
    }
}

Ausgabe

EnumMap1: {SMALL=28, MEDIUM=32}
EnumMap2: {SMALL=28, MEDIUM=32, LARGE=36}

Im obigen Beispiel haben wir den putAll() verwendet Methode zum Einfügen aller Elemente einer Aufzählungskarte sizes1 zu einer Aufzählungskarte von sizes2 .

Es ist auch möglich, Elemente aus anderen Karten wie HashMap einzufügen , TreeMap , etc. zu einer Enum-Map mit putAll() . Alle Maps sollten jedoch vom gleichen Enum-Typ sein.


Zugriff auf EnumMap-Elemente

1. Mit entrySet(), keySet() und values()

Zum Beispiel

import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the entrySet() Method
        System.out.println("Key/Value mappings: " + sizes.entrySet());

        // Using the keySet() Method
        System.out.println("Keys: " + sizes.keySet());

        // Using the values() Method
        System.out.println("Values: " + sizes.values());
    }
}

Ausgabe

EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
Key/Value mappings: [SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40]
Keys: [SMALL, MEDIUM, LARGE, EXTRALARGE]
Values: [28, 32, 36, 40]

2. Verwenden der get()-Methode

Die get() -Methode gibt den Wert zurück, der dem angegebenen Schlüssel zugeordnet ist. Es gibt null zurück wenn der angegebene Schlüssel nicht gefunden wird.

Zum Beispiel

import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the get() Method
        int value = sizes.get(Size.MEDIUM);
        System.out.println("Value of MEDIUM: " + value);
    }
}

Ausgabe

EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
Value of MEDIUM: 32

EnumMap-Elemente entfernen

Zum Beispiel

import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the remove() Method
        int value = sizes.remove(Size.MEDIUM);
        System.out.println("Removed Value: " + value);

        boolean result = sizes.remove(Size.SMALL, 28);
        System.out.println("Is the entry {SMALL=28} removed? " + result);

        System.out.println("Updated EnumMap: " + sizes);
    }
}

Ausgabe

EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
Removed Value: 32
Is the entry {SMALL=28} removed? True
Updated EnumMap: {LARGE=36, EXTRALARGE=40}

EnumMap-Elemente ersetzen

import java.util.EnumMap;

class Main {

    enum Size {
        SMALL, MEDIUM, LARGE, EXTRALARGE
    }
    public static void main(String[] args) {

        // Creating an EnumMap of the Size enum
        EnumMap<Size, Integer> sizes = new EnumMap<>(Size.class);
        sizes.put(Size.SMALL, 28);
        sizes.put(Size.MEDIUM, 32);
        sizes.put(Size.LARGE, 36);
        sizes.put(Size.EXTRALARGE, 40);
        System.out.println("EnumMap: " + sizes);

        // Using the replace() Method
        sizes.replace(Size.MEDIUM, 30);
        sizes.replace(Size.LARGE, 36, 34);
        System.out.println("EnumMap using replace(): " + sizes);

        // Using the replaceAll() Method
        sizes.replaceAll((key, oldValue) -> oldValue + 3);
        System.out.println("EnumMap using replaceAll(): " + sizes);
    }
}

Ausgabe

EnumMap: {SMALL=28, MEDIUM=32, LARGE=36, EXTRALARGE=40}
EnumMap using replace(): {SMALL=28, MEDIUM=30, LARGE=34, EXTRALARGE=40}
EnumMap using replaceAll(): {SMALL=31, MEDIUM=33, LARGE=37, EXTRALARGE=43}

Beachten Sie im obigen Programm die Anweisung

sizes.replaceAll((key, oldValue) -> oldValue + 3);

Dabei greift die Methode auf alle Einträge der Map zu. Anschließend werden alle Werte durch die neuen Werte ersetzt, die von den Lambda-Ausdrücken bereitgestellt werden.


Andere Methoden

zurück zurück
Methode Beschreibung
clone() Erzeugt eine Kopie von EnumMap
containsKey() Sucht den EnumMap für den angegebenen Schlüssel und gibt ein boolesches Ergebnis
containsValue() Sucht den EnumMap für den angegebenen Wert und gibt ein boolesches Ergebnis
size() Gibt die Größe des EnumMap zurück
clear() Entfernt alle Einträge aus EnumMap

EnumSet vs. EnumMap

Sowohl das EnumSet als auch EnumMap Die Klasse stellt Datenstrukturen zum Speichern von Aufzählungswerten bereit. Es gibt jedoch einige große Unterschiede zwischen ihnen.


Klonbare und serialisierbare Schnittstellen

Der EnumMap Klasse implementiert auch Cloneable und Serializable Schnittstellen.

Klonbare Oberfläche

Es erlaubt den EnumMap Klasse, um eine Kopie von Instanzen der Klasse zu erstellen.

Serialisierbare Schnittstelle

Wann immer Java-Objekte über ein Netzwerk übertragen werden müssen, müssen Objekte in Bits oder Bytes umgewandelt werden. Dies liegt daran, dass Java-Objekte nicht über das Netzwerk übertragen werden können.

Der Serializable -Schnittstelle ermöglicht die Serialisierung von Klassen. Damit sind Objekte der Klassen gemeint, die Serializable implementieren kann in Bits oder Bytes umgewandelt werden.


Java

  1. C Aufzählungen
  2. Java-Operatoren
  3. Java-Kommentare
  4. Java for-each-Schleife
  5. Java-Strings
  6. Java-Schnittstelle
  7. Anonyme Java-Klasse
  8. Java-Enumerationen
  9. Java-Enum-Konstruktor
  10. Java-Enum-Strings