Last Updated on August 11, 2021 by
Java Map digunakan untuk memetakan unique key ke value. Java Map berisikan nilai dari basis key misalnya pasangan key dan value. Pada pembahasan kali ini, Codekey akan membahas tentang Java Map dan hashmap Java.
Map pada bahasa sendiri berguna untuk mencari, memperbarui, dan menghapus elemen dari key dasar. Jika Anda tertarik dengan pembahasan tentang Java Map, simak terus artikel ini sampai akhir.
Table of Contents
Java Map
Map berisi nilai berdasarkan kunci, yaitu pasangan kunci dan nilai (key & value pair). Setiap pasangan kunci dan nilai dikenal sebagai entri. Map akan berguna jika Anda harus mencari, memperbarui, atau menghapus elemen berdasarkan kunci. Berikut ini adalah rangkuman tentang Java Map.
- Java Map memetakan kunci unik ke nilai. Kunci adalah objek yang Anda gunakan untuk mengambil nilai di kemudian hari.
- Anda dapat menyimpan key & value pair di dalam Java Map. Setelah nilai disimpan, Anda dapat mengambilnya dengan menggunakan kuncinya.
- Beberapa metode melempar NoSuchElementException ketika tidak ada item di Map yang dipanggil.
- ClassCastException dilempar ketika objek tidak kompatibel dengan elemen dalam Map.
- NullPointerException dilempar jika ada upaya untuk menggunakan objek null dan null tidak diizinkan di Map.
- UnsupportedOperationException dilempar ketika ada upaya untuk mengubah Map yang tidak dapat dimodifikasi.
Hirarki Java Map
Ada dua interface untuk mengimplementasikan Map di Java: Maap dan SortedMap, dan tiga kelas: Java HashMap, Java LinkedHashMap, dan Java TreeMap. Hirarki Java Map diberikan di bawah ini:
– LinkedHashMap mengekstensi Java Hashmap. Kemudian Java Hashmap mengimplementasikan Map.
– TreeMap mengimplementasikan SortedMap, dan SortedMap mengekstensikan Map.
Sebuah Java Map tidak mengizinkan key duplikat, namun Anda bisa menduplikasi nilai. HashMap dan LinkedHashMap mengizinkan null dan value. Namun, TreeMap tidak mengizinkan null key atau value apapun.
Sebuah Map dapat menjadi traversed, oleh karena itu Anda membutuhkannya untuk konversi ke Set menggunakan metode keyset() atau entrySet().
Class | Description |
HashMap | HashMap adalah implementasi dari Map, tapi ia tidak mempertahankan urutan apapun. |
LinkedHashMap | LinkedHashMap adalah implementasi dari Map. Ia mewarisi kelas HashMap. Ini mempertahankan urutan penyisipan. |
TreeMap | TreeMap adalah implementasi dari Map dan SortedMap. Ia mempertahankan urutan yang naik. |
Metode untuk Map Interface
- V put(Object key, Object value) : digunakan untuk menambahkan sebuah entri di dalam map.
- void putAll(Map map) : digunakan untuk menambahkan map yang spesifik di dalam map.
- V putIfAbsen(K key, V value) : metode ini memasukkan nilai yang ditentukan dengan kunci yang ditentukan di peta hanya jika belum ditentukan.
- V remove(Object key) : digunakan untuk menghapus entri untuk kunci yang ditentukan.
- boolean remove(Object key, Object value) : metode ini digunakan untuk menghapus nilai yang ditentukan dengan kunci yang ditentukan terkait dari peta.
- Set keySet() : metode ini digunakan mengembalikan tampilan Set yang berisi semua kunci.
- Set<Map.Entry<K,V>> entrySet() : metode ini digunakan untuk mengembalikan tampilan Set yang berisi semua kunci dan nilai.
- void clear() : metode yang digunakan untuk mereset peta.
- V compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction): metode ini digunakan untuk menghitung pemetaan untuk kunci yang ditentukan dan nilai yang dipetakan saat ini (atau null jika tidak ada pemetaan saat ini).
- V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction): metode yang digunakan untuk menghitung nilainya menggunakan fungsi pemetaan yang diberikan, jika kunci yang ditentukan belum dikaitkan dengan nilai (atau dipetakan ke null), dan memasukkannya ke dalam peta ini kecuali null.
- V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction): digunakan untuk menghitung pemetaan baru yang diberikan kunci dan nilai yang dipetakan saat ini jika nilai untuk kunci yang ditentukan ada dan tidak ada batal.
- boolean berisiValue(Value object): metode ini mengembalikan nilai true jika beberapa nilai sama dengan nilai yang ada di dalam peta, jika tidak mengembalikan false.
- boolean containKey(Object key) : metode ini mengembalikan nilai true jika beberapa kunci yang sama dengan kunci ada di dalam peta, jika tidak mengembalikan false.
- boolean equals(Object o) : digunakan untuk membandingkan Object yang ditentukan dengan Map.
- void forEach(BiConsumer<? super K,? super V> action) : metode ini melakukan tindakan yang diberikan untuk setiap entri di peta sampai semua entri telah diproses atau tindakan itu menimbulkan pengecualian.
- V get(Object key) : metode ini mengembalikan objek yang berisi nilai yang terkait dengan kunci.
- V getOrDefault(Object key, V defaultValue) : berguna mengembalikan nilai di mana kunci yang ditentukan dipetakan, atau defaultValue jika peta tidak berisi pemetaan untuk kunci tersebut.
- int hashCode() : metode ini mengembalikan nilai kode hash untuk Peta
- boolean isEmpty() : berguna untuk mengembalikan nilai true jika peta kosong; mengembalikan false jika berisi setidaknya satu kunci.
- V merge(K kunci, nilai V, BiFunction<? super V,? super V,? extends V> remappingFunction) : jika kunci yang ditentukan belum dikaitkan dengan nilai atau dikaitkan dengan null, kaitkan dengan non-null yang diberikan nilai.
- V replace(K kunci, nilai V) : metode ini menggantikan nilai yang ditentukan untuk kunci yang ditentukan.
- boolean replace(K kunci, V oldValue, V newValue) : hal ini digunakan untuk menggantikan nilai lama dengan nilai baru untuk kunci tertentu.
- void replaceAll(BiFunction<? super K,? super V,? extends V> function) : metode ini dapat menggantikan nilai setiap entri dengan hasil memanggil fungsi yang diberikan pada entri itu sampai semua entri telah diproses atau fungsi melempar pengecualian.
- Nilai koleksi() : metode ini mengembalikan tampilan koleksi dari nilai-nilai yang terkandung dalam peta.
- int size() : metode ini berguna untuk mengembalikan jumlah entri di peta.
Map.Entry Interface
Entry adalah subinterface dari Map. Jadi, ketika kita akan mengaksesnya dengan nama Map.Entry, maka ia akan mengembalikan tampilan koleksi map, yang elemennya berasal dari kelas ini.
- K getKey() : digunakan untuk mendapatkan kunci.
- V getValue() : digunakan untuk mendapatkan nilai.
- int hashCode() : digunakan untuk mendapatkan kode hash.
- V setValue(V value) : digunakan untuk mengganti nilai yang sesuai dengan entri ini dengan nilai yang ditentukan.
- boolean equals(Object o) : digunakan untuk membandingkan objek tertentu dengan objek lain yang ada.
- static <K extends Comparable<? super K>,V> Comparator<Map.Entry<K,V>> compareByKey() : digunakan untuk mengembalikan komparator yang membandingkan objek dalam urutan alami pada kunci.
- static <K,V> Comparator<Map.Entry<K,V>> compareByKey(Comparator<? super K> cmp) : digunakan untuk mengembalikan komparator yang membandingkan objek dengan kunci menggunakan Comparator yang diberikan.
- statis <K,V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> compareByValue() Ini mengembalikan komparator yang membandingkan objek dalam urutan alami pada nilai.
- static <K,V> Comparator<Map.Entry<K,V>> compareByValue(Comparator<? super V> cmp) : berguna untuk mengembalikan komparator yang membandingkan objek dengan nilai menggunakan Comparator yang diberikan.
Contoh Penerapan Java Map : Non-Generic (Old Style)
1. //Non-generic 2. import java.util.*; 3. public class MapExample1 { 4. public static void main(String[] args) { 5. Map map=new HashMap(); 6. //Adding elements to map 7. map.put(1,"Amit"); 8. map.put(5,"Rahul"); 9. map.put(2,"Jai"); 10. map.put(6,"Amit"); 11. //Traversing Map 12. Set set=map.entrySet();//Converting to Set so that we can traverse 13. Iterator itr=set.iterator(); 14. while(itr.hasNext()){ 15. //Converting to Map.Entry so that we can get key and value separately 16. Map.Entry entry=(Map.Entry)itr.next(); 17. System.out.println(entry.getKey()+" "+entry.getValue()); 18. } 19. } 20. } Output 1 Amit 2 Jai 5 Rahul 6 Amit
Contoh Penerapan Java Map : Generic (New Style)
1. import java.util.*; 2. class MapExample2{ 3. public static void main(String args[]){ 4. Map<Integer,String> map=new HashMap<Integer,String>(); 5. map.put(100,"Amit"); 6. map.put(101,"Vijay"); 7. map.put(102,"Rahul"); 8. //Elements can traverse in any order 9. for(Map.Entry m:map.entrySet()){ 10. System.out.println(m.getKey()+" "+m.getValue()); 11. } 12. } 13. } Output 102 Rahul 100 Amit 101 Vijay
Java Map : comparingByKey()
1. import java.util.*; 2. class MapExample3{ 3. public static void main(String args[]){ 4. Map<Integer,String> map=new HashMap<Integer,String>(); 5. map.put(100,"Amit"); 6. map.put(101,"Vijay"); 7. map.put(102,"Rahul"); 8. //Returns a Set view of the mappings contained in this map 9. map.entrySet() 10. //Returns a sequential Stream with this collection as its source 11. .stream() 12. //Sorted according to the provided Comparator 13. .sorted(Map.Entry.comparingByKey()) 14. //Performs an action for each element of this stream 15. .forEach(System.out::println); 16. } 17. } Output 100=Amit 101=Vijay 102=Rahul
Java Map : comparingByKey() dalam Urutan Menurun (Descending Order)
1. import java.util.*; 2. class MapExample4{ 3. public static void main(String args[]){ 4. Map<Integer,String> map=new HashMap<Integer,String>(); 5. map.put(100,"Amit"); 6. map.put(101,"Vijay"); 7. map.put(102,"Rahul"); 8. //Returns a Set view of the mappings contained in this map 9. map.entrySet() 10. //Returns a sequential Stream with this collection as its source 11. .stream() 12. //Sorted according to the provided Comparator 13. .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) 14. //Performs an action for each element of this stream 15. .forEach(System.out::println); 16. } 17. } Output 102=Rahul 101=Vijay 100=Amit
Java Map : comparingByValue()
1. import java.util.*; 2. class MapExample5{ 3. public static void main(String args[]){ 4. Map<Integer,String> map=new HashMap<Integer,String>(); 5. map.put(100,"Amit"); 6. map.put(101,"Vijay"); 7. map.put(102,"Rahul"); 8. //Returns a Set view of the mappings contained in this map 9. map.entrySet() 10. //Returns a sequential Stream with this collection as its source 11. .stream() 12. //Sorted according to the provided Comparator 13. .sorted(Map.Entry.comparingByValue()) 14. //Performs an action for each element of this stream 15. .forEach(System.out::println); 16. } 17. } Output 100=Amit 102=Rahul 101=Vijay
Java Map : comparingByValue() dalam Descending Order
1. import java.util.*; 2. class MapExample6{ 3. public static void main(String args[]){ 4. Map<Integer,String> map=new HashMap<Integer,String>(); 5. map.put(100,"Amit"); 6. map.put(101,"Vijay"); 7. map.put(102,"Rahul"); 8. //Returns a Set view of the mappings contained in this map 9. map.entrySet() 10. //Returns a sequential Stream with this collection as its source 11. .stream() 12. //Sorted according to the provided Comparator 13. .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) 14. //Performs an action for each element of this stream 15. .forEach(System.out::println); 16. } 17. } Output 101=Vijay 102=Rahul 100=Amit
Demikianlah penjelasan tentang Java Map untuk Anda pahami agar Anda bisa lebih mahir dalam melakukan pemrograman Java. Jika Anda tertarik untuk belajar bahasa pemrograman Java, pastikan Anda belajar di Codekey.
Situs Codekey adalah situs untuk Anda belajar bahasa pemrograman tidak hanya Java tetapi juga bahasa pemrorgraman lainnya seperti Python dan JavaScript. Jangan lupa untuk terus dapatkan update artikel terbaru dari https://codekey.id/
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.