Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java EnumMap

Java EnumMap

Dalam tutorial ini, kita akan belajar tentang kelas Java EnumMap dan operasinya dengan bantuan contoh.

EnumMap kelas kerangka koleksi Java menyediakan implementasi peta untuk elemen enum.

Di EnumMap , elemen enum digunakan sebagai kunci . Ini mengimplementasikan antarmuka Peta.

Sebelum kita mempelajari tentang EnumMap , pastikan untuk mengetahui tentang Java Enums.


Membuat EnumMap

Untuk membuat peta enum, kita harus mengimpor java.util.EnumMap paket dulu. Setelah kita mengimpor paket, berikut adalah cara membuat enum maps di Java.

enum Size {
    SMALL, MEDIUM, LARGE, EXTRALARGE
}

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

Pada contoh di atas, kami telah membuat peta enum bernama sizes .

Di sini,


Metode EnumMap

EnumMap class menyediakan metode yang memungkinkan kita untuk melakukan berbagai elemen pada peta enum.


Sisipkan Elemen ke EnumMap

Misalnya,

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

Keluaran

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

Pada contoh di atas, kami telah menggunakan putAll() metode untuk menyisipkan semua elemen peta enum sizes1 ke peta enum sizes2 .

Dimungkinkan juga untuk menyisipkan elemen dari peta lain seperti HashMap , TreeMap , dll. ke peta enum menggunakan putAll() . Namun, semua peta harus memiliki tipe enum yang sama.


Akses EnumMap Elements

1. Menggunakan entrySet(), keySet() dan values()

Misalnya,

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

Keluaran

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. Menggunakan Metode get()

get() metode mengembalikan nilai yang terkait dengan kunci yang ditentukan. Ia mengembalikan null jika kunci yang ditentukan tidak ditemukan.

Misalnya,

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

Keluaran

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

Hapus Elemen EnumMap

Misalnya,

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

Keluaran

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}

Ganti Elemen EnumMap

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

Keluaran

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}

Pada program di atas, perhatikan pernyataan

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

Di sini, metode mengakses semua entri peta. Ini kemudian menggantikan semua nilai dengan nilai baru yang disediakan oleh ekspresi lambda.


Metode Lain

Metode Deskripsi
clone() Membuat salinan EnumMap
containsKey() Menelusuri EnumMap untuk kunci yang ditentukan dan mengembalikan hasil boolean
containsValue() Menelusuri EnumMap untuk nilai yang ditentukan dan mengembalikan hasil boolean
size() Mengembalikan ukuran EnumMap
clear() Menghapus semua entri dari EnumMap

EnumSet Vs. EnumMap

EnumSet dan EnumMap class menyediakan struktur data untuk menyimpan nilai enum. Namun, ada beberapa perbedaan utama di antara mereka.


Antarmuka yang Dapat Dikloning dan Serialisasi

EnumMap kelas juga mengimplementasikan Cloneable dan Serializable antarmuka.

Antarmuka yang Dapat Digandakan

Ini memungkinkan EnumMap class untuk membuat salinan instance dari class tersebut.

Antarmuka Serializable

Kapanpun objek Java perlu ditransmisikan melalui jaringan, objek perlu diubah menjadi bit atau byte. Ini karena objek Java tidak dapat ditransmisikan melalui jaringan.

Serializable antarmuka memungkinkan kelas untuk menjadi serial. Ini berarti objek dari kelas yang mengimplementasikan Serializable dapat diubah menjadi bit atau byte.


java

  1. C enum
  2. Operator Jawa
  3. Komentar Jawa
  4. Java untuk setiap Loop
  5. String Jawa
  6. Antarmuka Jawa
  7. Kelas Anonim Java
  8. enum Jawa
  9. Konstruktor enum Java
  10. String enum Java