java
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.
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,
EnumMap
class menyediakan metode yang memungkinkan kita untuk melakukan berbagai elemen pada peta enum.
put()
- menyisipkan pemetaan kunci/nilai yang ditentukan (entri) ke peta enumputAll()
- menyisipkan semua entri peta tertentu ke peta iniMisalnya,
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.
1. Menggunakan entrySet(), keySet() dan values()
entrySet()
- mengembalikan satu set semua pemetaan kunci/nilai (entri) dari peta enumkeySet()
- mengembalikan satu set semua kunci peta enumvalues()
- mengembalikan satu set semua nilai peta enumMisalnya,
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
remove(key)
- mengembalikan dan menghapus entri yang terkait dengan kunci yang ditentukan dari petaremove(key, value)
- menghapus entri dari peta hanya jika kunci yang ditentukan dipetakan ke nilai yang ditentukan dan mengembalikan nilai booleanMisalnya,
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}
replace(key, value)
- menggantikan nilai yang terkait dengan kunci yang ditentukan dengan nilai new yang baru replace(key, old, new)
- menggantikan lama nilai dengan baru nilai hanya jika lama nilai sudah dikaitkan dengan kunci yang ditentukan replaceAll(function)
- mengganti setiap nilai peta dengan hasil fungsi yang ditentukan
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 | 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 dan EnumMap
class menyediakan struktur data untuk menyimpan nilai enum. Namun, ada beberapa perbedaan utama di antara mereka.
allOf()
, noneOf()
, of()
, dll. Namun, peta enum dibuat menggunakan konstruktornya.
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
Antarmuka Koleksi Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java Collection dan subinterface-nya. Collection antarmuka adalah antarmuka akar kerangka koleksi Java. Tidak ada implementasi langsung dari antarmuka ini. Namun, ini diimplementasikan melalui subinterfacenya seperti L
Daftar Java Dalam tutorial ini, kita akan belajar tentang antarmuka Daftar di Java dan metodenya. Dalam Java, List interface adalah kumpulan terurut yang memungkinkan kita untuk menyimpan dan mengakses elemen secara berurutan. Ini memperluas Collection antarmuka. Kelas yang Menerapkan Daftar Seja
Antarmuka Antrian Java Dalam tutorial ini, kita akan belajar tentang antarmuka Java Queue dan metodenya. Queue antarmuka kerangka koleksi Java menyediakan fungsionalitas struktur data antrian. Ini memperluas Collection antarmuka. Kelas yang Menerapkan Antrian Sejak Queue adalah antarmuka, kami t
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. Se