Java - Antarmuka Map
Selamat datang, para pengembang Java masa depan! Hari ini, kita akan mempelajari salah satu komponen paling multifungsi dan kuat dalam kerangka Collections Java: antarmuka Map. Sebagai guru ilmu komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk memandu Anda dalam perjalanan ini. Jadi, ambil minuman favorit Anda, betahlah, dan mari kita mulai petualangan ini bersama!
Apa Itu Map?
Bayangkan Anda sedang mengatur sebuah perpustakaan besar. Anda ingin menemukan buku dengan cepat tanpa perlu mencari setiap rak. Itu di mana Map berguna dalam dunia pemrograman. Sebuah Map adalah seperti seorang petugas perpustakaan yang bisa secara instan menemukan buku apa pun yang Anda minta.
Dalam Java, sebuah Map adalah objek yang menyimpan pasangan key-value. Setiap key terkait dengan nilai tertentu, sama seperti judul buku (key) terkait dengan lokasinya di perpustakaan (value).
Karakteristik Utama Map
- Setiap key harus unik
- Setiap key hanya bisa dipetakan ke nilai paling banyak satu
- Sangat cocok untuk pencarian cepat dan pengambilan data
Metode Antarmuka Map
Bergambar beberapa metode yang biasanya digunakan dalam antarmuka Map:
Metode | Deskripsi |
---|---|
put(K key, V value) |
Menambahkan pasangan key-value ke map |
get(Object key) |
Mengembalikan nilai yang terkait dengan key yang ditentukan |
remove(Object key) |
Menghapus pasangan key-value yang terkait dengan key yang ditentukan |
clear() |
Menghapus semua pasangan key-value dari map |
size() |
Mengembalikan jumlah pasangan key-value dalam map |
isEmpty() |
Mengembalikan true jika map tidak mengandung pasangan key-value |
containsKey(Object key) |
Mengembalikan true jika map mengandung key yang ditentukan |
containsValue(Object value) |
Mengembalikan true jika map mengandung nilai yang ditentukan |
keySet() |
Mengembalikan Set dari semua key dalam map |
values() |
Mengembalikan Collection dari semua nilai dalam map |
entrySet() |
Mengembalikan Set dari semua pasangan key-value dalam map |
Kelas yang Implementasi Map
Java menyediakan beberapa kelas yang implementasi antarmuka Map. Mari kita lihat tiga yang paling umum digunakan:
1. HashMap
HashMap seperti seorang petugas perpustakaan yang cepat menemukan buku apa pun tetapi tidak peduli tentang urutan buku.
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
ages.put("Charlie", 35);
System.out.println(ages.get("Bob")); // Output: 30
Dalam contoh ini, kita menciptakan HashMap untuk menyimpan umur orang. Key adalah nama orang (String), dan nilai adalah umurnya (Integer).
2. TreeMap
TreeMap seperti seorang petugas perpustakaan yang menyusun semua buku secara alfabetis menurut judulnya.
Map<String, String> capitals = new TreeMap<>();
capitals.put("USA", "Washington D.C.");
capitals.put("France", "Paris");
capitals.put("Japan", "Tokyo");
for (String country : capitals.keySet()) {
System.out.println(country + ": " + capitals.get(country));
}
Kode ini akan mencetak negara dan ibu kotanya dalam urutan alfabetis nama negara:
France: Paris
Japan: Tokyo
USA: Washington D.C.
3. LinkedHashMap
LinkedHashMap seperti seorang petugas perpustakaan yang mengingat urutan penambahan buku ke perpustakaan.
Map<String, Double> prices = new LinkedHashMap<>();
prices.put("Apple", 0.99);
prices.put("Banana", 0.59);
prices.put("Cherry", 3.99);
for (Map.Entry<String, Double> entry : prices.entrySet()) {
System.out.println(entry.getKey() + ": $" + entry.getValue());
}
Ini akan mencetak buah dan harga mereka dalam urutan penambahan:
Apple: $0.99
Banana: $0.59
Cherry: $3.99
Antarmuka yang Mengembangkan Map
Antarmuka Map memiliki dua sub-antarmuka utama:
- SortedMap
- NavigableMap
Antarmuka ini menambahkan fungsi ekstra untuk bekerja dengan map yang diurutkan. TreeMap mengimplementasikan kedua antarmuka ini.
Contoh Antarmuka Map
Bergambar beberapa contoh praktis untuk mengukuhkan pemahaman kita:
Contoh 1: Penyusun Nilai Siswa
Bayangkan kita membuat sistem untuk melacak nilai siswa:
Map<String, Integer> studentGrades = new HashMap<>();
// Menambahkan nilai siswa
studentGrades.put("Alice", 95);
studentGrades.put("Bob", 80);
studentGrades.put("Charlie", 85);
// Memperbarui nilai
studentGrades.put("Bob", 82);
// Mengambil nilai
System.out.println("Nilai Alice: " + studentGrades.get("Alice"));
// Memeriksa jika siswa ada
if (studentGrades.containsKey("David")) {
System.out.println("Nilai David: " + studentGrades.get("David"));
} else {
System.out.println("David tidak ada dalam sistem.");
}
// Mencetak semua nilai siswa
for (Map.Entry<String, Integer> entry : studentGrades.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
Contoh ini menunjukkan menambahkan, memperbarui, mengambil, dan mengiterasi entri dalam Map.
Contoh 2: Peny Hitung Frekuensi Kata
Buatlah program yang menghitung frekuensi kata dalam kalimat:
String sentence = "the quick brown fox jumps over the lazy dog";
String[] words = sentence.split(" ");
Map<String, Integer> wordFrequency = new HashMap<>();
for (String word : words) {
if (wordFrequency.containsKey(word)) {
wordFrequency.put(word, wordFrequency.get(word) + 1);
} else {
wordFrequency.put(word, 1);
}
}
for (Map.Entry<String, Integer> entry : wordFrequency.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
Program ini memecah kalimat menjadi kata-kata, kemudian menghitung berapa kali setiap kata muncul, menyimpan hasilnya dalam Map.
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia antarmuka Map Java. Kita telah melihat dasar-dasar, mengeksplorasi implementasi yang berbeda, dan bahkan menangani beberapa contoh praktis. Ingat, seperti seorang petugas perpustakaan yang bagus, Map membantu Anda mengatur dan mengambil informasi secara efisien.
Sekarang Anda teruskan perjalanan Java Anda, Anda akan menemukan Maps muncul di mana-mana, dari program sederhana hingga aplikasi kompleks. Mereka adalah alat penting dalam setiap pengembang Java.
Teruslatih, tetap curiga, dan sebelum Anda sadar, Anda akan dapat memetakan solusi ke masalah kompleks dengan mudah. Selamat coding, para master Java masa depan!
Credits: Image by storyset