Pendahuluan Peta
Petakan kunci ke objek nilai. Peta tidak dapat berisi tombol duplikat; Setiap kunci hanya dapat memetakan satu nilai paling banyak. Antarmuka ini menggantikan kelas kamus, yang sepenuhnya merupakan kelas abstrak, bukan antarmuka.
Antarmuka peta menyediakan tiga tampilan koleksi yang memungkinkan melihat konten peta dalam bentuk set kunci, set nilai, atau set hubungan pemetaan nilai kunci. Urutan pemetaan didefinisikan sebagai urutan di mana iterator mengembalikan elemennya pada tampilan koleksi peta. Beberapa implementasi pemetaan secara eksplisit menjamin pesanan mereka, seperti kelas TreeMap; Orang lain tidak menjamin pesanan mereka, seperti kelas hashmap.
Catatan: Perawatan ekstra harus diambil saat menggunakan objek yang dapat berubah sebagai kunci pemetaan. Ketika suatu objek adalah kunci dalam peta, jika nilai objek diubah dengan cara yang mempengaruhi perbandingan yang sama, perilaku peta tidak pasti. Kasus khusus yang dilarang ini adalah bahwa peta tidak memungkinkan dirinya untuk dimasukkan sebagai kunci. Meskipun peta diizinkan untuk memasukkan dirinya sebagai nilai, hati -hati: definisi metode yang sama dan kode hash tidak akan lagi eksplisit pada peta tersebut.
Semua kelas implementasi pemetaan umum harus menyediakan dua konstruktor "standar": konstruktor void (tidak ada parameter) untuk membuat peta kosong; dan konstruktor dengan parameter jenis peta tunggal untuk membuat peta baru dengan hubungan pemetaan nilai kunci yang sama dengan parameternya. Bahkan, konstruktor terakhir memungkinkan pengguna untuk menyalin peta sewenang -wenang untuk menghasilkan peta yang setara dari kelas yang diperlukan. Meskipun saran ini tidak dapat ditegakkan (karena antarmuka tidak dapat mengandung konstruktor), semua implementasi pemetaan umum di JDK mengikutinya.
Metode "hancurkan" yang terkandung dalam antarmuka ini memodifikasi pemetaan operasinya, dan jika pemetaan ini tidak mendukung operasi, metode ini akan melempar ExportedOperationException yang tidak didukung. Jika demikian, maka metode ini dapat (tetapi tidak memerlukan) melempar UnporportedOperationException ketika panggilan tidak valid untuk pemetaan. Misalnya, jika peta yang tidak dimodifikasi yang hubungan pemetaannya "tumpang tindih" kosong, pengecualian dapat dilemparkan (tetapi tidak diperlukan) saat memanggil metode putall (peta) ke peta.
Beberapa implementasi pemetaan memiliki keterbatasan pada kunci dan nilai yang mungkin dimasukkan. Misalnya, beberapa implementasi melarang kunci dan nilai nol, yang lain memiliki batasan pada jenis kunci mereka. Mencoba memasukkan kunci atau nilai yang tidak memenuhi syarat akan melempar pengecualian yang tidak dicentang, biasanya nullpointerexception atau ClasscastException. Mencoba menanyakan apakah kunci atau nilai yang tidak memenuhi syarat dapat melempar pengecualian, atau mengembalikan false; Beberapa implementasi akan menunjukkan perilaku sebelumnya, sementara yang lain akan menunjukkan yang terakhir. Secara umum, ketika mencoba melakukan operasi pada kunci atau nilai yang tidak memenuhi syarat dan penyelesaian operasi tidak menghasilkan elemen yang tidak memenuhi syarat yang dimasukkan ke dalam peta, pengecualian dapat dilemparkan atau operasi mungkin berhasil, tergantung pada implementasi itu sendiri. Pengecualian seperti itu ditandai "opsional" dalam spesifikasi antarmuka ini.
Antarmuka ini adalah anggota dari kerangka kerja koleksi Java.
Banyak metode dalam antarmuka kerangka kerja koleksi didefinisikan sesuai dengan metode yang sama. Misalnya, spesifikasi metode ContainsKey (kunci objek) mengatakan: "Kembalikan true jika dan hanya jika peta ini berisi hubungan pemetaan untuk kunci k yang memuaskan (kunci == null? K == null: kunci. Sama halnya.
Instruksi operasi umum batal jernih ()
Hapus semua hubungan pemetaan dari peta ini (tindakan opsional).
Boolean berisiKey (kunci objek)
Mengembalikan true jika peta ini berisi hubungan pemetaan untuk kunci yang ditentukan.
Boolean berisi nilai (nilai objek)
Mengembalikan true jika peta ini memetakan satu atau lebih kunci ke nilai yang ditentukan.
Set <map.entry <k, v >> entryset ()
Mengembalikan Tampilan Set dari hubungan pemetaan yang terkandung dalam peta ini.
boolean sama (objek o)
Bandingkan apakah objek yang ditentukan sama dengan peta ini.
V dapatkan (kunci objek)
Mengembalikan nilai yang dipetakan oleh kunci yang ditentukan; Jika peta ini tidak berisi hubungan pemetaan kunci, kembalikan nol.
int hashcode ()
Mengembalikan nilai kode hash untuk peta ini.
boolean isempty ()
Kembalikan true jika peta ini tidak mengandung hubungan pemetaan nilai kunci.
Atur <k> keyset ()
Mengembalikan tampilan set dari kunci yang terkandung dalam peta ini.
V put (key k, nilai v)
Hubungkan nilai yang ditentukan dengan kunci yang ditentukan dalam peta ini (Tindakan Opsional).
void putall (peta <? Extends k,? Memperluas v> m)
Salin semua hubungan pemetaan dari pemetaan yang ditentukan ke peta ini (Tindakan Opsional).
V Hapus (Kunci Objek)
Jika ada hubungan pemetaan untuk kunci, itu dihapus dari peta ini (opsional).
ukuran int ()
Mengembalikan hubungan pemetaan nilai kunci di peta ini.
Koleksi <v> values ()
Mengembalikan tampilan koleksi nilai -nilai yang terkandung dalam peta ini.
Penggunaan Peta Umum
1. Deklarasikan peta:
Salinan kode adalah sebagai berikut:
Peta peta = hashmap baru ();
2. Masukkan nilainya ke dalam peta. Catatan: Peta disimpan dalam bentuk nilai kunci, seperti:
Salinan kode adalah sebagai berikut:
Map.put ("SA", "DD");
3. Ambil nilai dari peta:
Salinan kode adalah sebagai berikut:
String str = map.get ("sa"). Tostring,
Hasilnya adalah: str = "dd '
4. Iterasi melalui peta dan dapatkan kunci dan nilai darinya:
Salinan kode adalah sebagai berikut:
Peta m = hashmap baru ();
untuk (objek obj: map.keyset ()) {
Nilai objek = Map.get (obj);
}