Kelas Java EnumMap: Panduan untuk Pemula
Pengenalan
Hai di sana, pemrogram Java masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dalam dunia kelas Java EnumMap. Saya tahu apa yang mungkin anda fikirkan: "EnumMap? Itu sukar!" Tetapi jangan khawatir! Pada akhir tutorial ini, anda akan menggunakan EnumMap seperti profesional, dan mungkin juga ada beberapa kesenangan di atas jalan itu.
Mari kita mula dengan analogi yang simple. Bayangkan anda memiliki rak penyimpanan khusus untuk setiap hari minggu untuk menguruskan rak kaus anda. Itu adalah esen yang sama dengan EnumMap – cara untuk menguruskan data menggunakan konstanta enum sebagai kunci. Cool, kan? Mari kita penyelam!
Pengisytiharan Kelas
Pertama-tama, mari kita lihat bagaimana kita mengisytiharkan EnumMap:
import java.util.EnumMap;
enum HariMinggu { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
EnumMap<HariMinggu, String> aktiviti = new EnumMap<>(HariMinggu.class);
Dalam contoh ini, kita membuat EnumMap yang menggunakan enum HariMinggu
kita sebagai kunci dan nilai String
untuk menyimpan aktiviti. Bahagian HariMinggu.class
memberitahu Java jenis enum yang kita gunakan untuk kunci kita.
Konstruktor Kelas
EnumMap memiliki tiga konstruktor. Mari kita lihat setiap satu:
-
EnumMap(Class
keyType) EnumMap<HariMinggu, String> aktiviti = new EnumMap<>(HariMinggu.class);
Ini membuat EnumMap kosong dengan jenis enum yang dinyatakan.
-
EnumMap(EnumMap<K,? extends V> m)
EnumMap<HariMinggu, String> aktivitiSalinan = new EnumMap<>(aktiviti);
Ini membuat EnumMap dengan jenis kunci yang sama seperti EnumMap yang dinyatakan dan menginisialisasikannya dengan pemetaan yang sama (jika ada).
-
EnumMap(Map<K,? extends V> m)
Map<HariMinggu, String> petaBiasa = new HashMap<>(); petaBiasa.put(HariMinggu.MONDAY, "Gym"); EnumMap<HariMinggu, String> aktivitiDariPeta = new EnumMap<>(petaBiasa);
Ini membuat EnumMap diinisialisasi dari peta biasa.
Method Kelas
Sekarang, mari kita lihat beberapa method yang paling umum digunakan di EnumMap:
Method | Keterangan |
---|---|
put(K key, V value) | Mengasosiasikan nilai yang dinyatakan dengan kunci yang dinyatakan |
get(Object key) | Mengembalikan nilai yang dikaitkan dengan kunci yang dinyatakan |
remove(Object key) | Menghapus pemetaan untuk kunci ini jika ada |
size() | Mengembalikan jumlah pemetaan kunci-nilai |
clear() | Menghapus semua pemetaan dari peta ini |
containsKey(Object key) | Mengembalikan true jika peta ini mengandungi pemetaan untuk kunci yang dinyatakan |
containsValue(Object value) | Mengembalikan true jika peta ini memetakan satu atau lebih kunci ke nilai yang dinyatakan |
Mari lihat method ini dalam aksi:
EnumMap<HariMinggu, String> aktiviti = new EnumMap<>(HariMinggu.class);
// Menambah pasangan kunci-nilai
aktiviti.put(HariMinggu.MONDAY, "Gym");
aktiviti.put(HariMinggu.TUESDAY, "Cinema");
// Mendapatkan nilai
String aktivitiMonday = aktiviti.get(HariMinggu.MONDAY);
System.out.println("Aktiviti hari Monday: " + aktivitiMonday);
// Memeriksa jika kunci ada
boolean adaWednesday = aktiviti.containsKey(HariMinggu.WEDNESDAY);
System.out.println("Ada hari Wednesday: " + adaWednesday);
// Menghapus pasangan kunci-nilai
aktiviti.remove(HariMinggu.TUESDAY);
// Mendapatkan ukuran
int ukuran = aktiviti.size();
System.out.println("Jumlah aktiviti: " + ukuran);
// Membersihkan peta
aktiviti.clear();
Dalam contoh ini, kita menambah aktiviti untuk hari berbeda, mengambil nilai, memeriksa kunci, menghapus entri, dan akhirnya membersihkan peta keseluruhan. Itu seperti menguruskan dan menguruskan rak kaus kita!
Method Waris
EnumMap mengwarisi method dari kelas induknya. Berikut adalah beberapa yang berguna:
Method | Diwarisi Dari | Keterangan |
---|---|---|
clone() | AbstractMap | Membuat salinan dangkal dari peta ini |
equals(Object o) | AbstractMap | Membandingkan objek yang dinyatakan dengan peta ini untuk kesetaraan |
hashCode() | AbstractMap | Mengembalikan nilai hash bagi peta ini |
toString() | AbstractMap | Mengembalikan representasi string dari peta ini |
Contoh Menambah Pasangan Kunci-Nilai ke EnumMap Enum, Integer
Sekarang, mari kita coba sesuatu yang sedikit lebih kompleks. Kita akan membuat EnumMap yang menggunakan enum sebagai kunci dan integer sebagai nilai:
enum Buah { APPLE, BANANA, ORANGE, MANGO }
EnumMap<Buah, Integer> hargaBuah = new EnumMap<>(Buah.class);
// Menambah pasangan kunci-nilai
hargaBuah.put(Buah.APPLE, 100);
hargaBuah.put(Buah.BANANA, 80);
hargaBuah.put(Buah.ORANGE, 120);
hargaBuah.put(Buah.MANGO, 150);
// Mencetak EnumMap
System.out.println("Harga Buah: " + hargaBuah);
// Memperbarui nilai
hargaBuah.put(Buah.BANANA, 90);
// Mendapatkan nilai spesifik
int hargaApple = hargaBuah.get(Buah.APPLE);
System.out.println("Harga Apple: " + hargaApple);
// Mengulang EnumMap
for (Map.Entry<Buah, Integer> entry : hargaBuah.entrySet()) {
System.out.println(entry.getKey() + ": $" + entry.getValue());
}
Dalam contoh ini, kita membuat senarai harga buah. Kita menambah harga untuk buah berbeda, memperbarui harga pisang, mengambil harga apel, dan kemudian mengulang seluruh peta untuk mencetak semua harga buah.
Dan itu adalah! Anda baru saja belajar dasar-dasar kelas Java EnumMap. Ingat, praktek membuat perfect, jadi jangan takut untuk bereksperimen dengan konsep ini. Siapa tahu? Anda mungkin saja menemukan diri anda menguruskan keseluruhan hidup anda dengan EnumMaps! (Just kidding, tapi mereka benar-benar berguna.)
Happy coding, dan semoga EnumMaps anda selalu terurus!
Credits: Image by storyset