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.

Java - EnumMap

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:

  1. EnumMap(Class keyType)

    EnumMap<HariMinggu, String> aktiviti = new EnumMap<>(HariMinggu.class);

    Ini membuat EnumMap kosong dengan jenis enum yang dinyatakan.

  2. 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).

  3. 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