Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java HashMap

Java HashMap

Dalam tutorial ini, kita akan belajar tentang kelas Java HashMap dan berbagai operasinya dengan bantuan contoh.

HashMap kelas kerangka koleksi Java menyediakan fungsionalitas struktur data tabel hash.

Ini menyimpan elemen di kunci/nilai berpasangan. Di sini, kunci adalah pengidentifikasi unik yang digunakan untuk mengaitkan setiap nilai di peta.

HashMap class mengimplementasikan antarmuka Peta.


Buat HashMap

Untuk membuat peta hash, kita harus mengimpor java.util.HashMap paket dulu. Setelah kita mengimpor paket, berikut adalah cara membuat hashmap di Java.

// hashMap creation with 8 capacity and 0.6 load factor
HashMap<K, V> numbers = new HashMap<>();

Pada kode di atas, kita telah membuat sebuah hashmap bernama numbers . Di sini, K mewakili jenis kunci dan V mewakili jenis nilai. Misalnya,

HashMap<String, Integer> numbers = new HashMap<>();

Di sini, jenis kunci adalah String dan jenis nilai adalah Integer .


Contoh 1:Buat HashMap di Java

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    // create a hashmap
    HashMap<String, Integer> languages = new HashMap<>();

    // add elements to hashmap
    languages.put("Java", 8);
    languages.put("JavaScript", 1);
    languages.put("Python", 3);
    System.out.println("HashMap: " + languages);
  }
}

Keluaran

HashMap: {Java=8, JavaScript=1, Python=3}

Pada contoh di atas, kita telah membuat HashMap bernama bahasa .

Di sini, kami telah menggunakan put() metode untuk menambahkan elemen ke hashmap. Kita akan mempelajari lebih lanjut tentang put() metode nanti dalam tutorial ini.


Operasi Dasar di Java HashMap

HashMap class menyediakan berbagai metode untuk melakukan operasi yang berbeda pada hashmaps. Kita akan melihat beberapa operasi daftar array yang umum digunakan dalam tutorial ini:

  • Tambahkan elemen
  • Akses elemen
  • Ubah elemen
  • Hapus elemen

1. Tambahkan elemen ke HashMap

Untuk menambahkan satu elemen ke hashmap, kami menggunakan put() metode HashMap kelas. Misalnya,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    // create a hashmap
    HashMap<String, Integer> numbers = new HashMap<>();

    System.out.println("Initial HashMap: " + numbers);
    // put() method to add elements
    numbers.put("One", 1);
    numbers.put("Two", 2);
    numbers.put("Three", 3);
    System.out.println("HashMap after put(): " + numbers);
  }
}

Keluaran

Initial HashMap: {}
HashMap after put(): {One=1, Two=2, Three=3}

Pada contoh di atas, kita telah membuat HashMap bernama angka . Di sini, kami telah menggunakan put() metode untuk menambahkan elemen ke angka.

Perhatikan pernyataannya,

numbers.put("One", 1);

Di sini, kita melewati String nilai Satu sebagai kunci dan Integer nilai 1 sebagai nilai untuk put() metode.

Bacaan yang Disarankan

  • Java HashMap put()
  • Java HashMap putAll()
  • Java HashMap putIfAbsent()

2. Akses Elemen HashMap

Kita dapat menggunakan get() metode untuk mengakses nilai dari hashmap. Misalnya,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // get() method to get value
    String value = languages.get(1);
    System.out.println("Value at index 1: " + value);
  }
}

Keluaran

HashMap: {1=Java, 2=Python, 3=JavaScript}
Value at index 1: Java

Pada contoh di atas, perhatikan ekspresi,

languages.get(1);

Di sini, get() metode mengambil kunci sebagai argumennya dan mengembalikan nilai . yang sesuai terkait dengan kunci.

Kami juga dapat mengakses kunci , nilai , dan kunci/nilai pasang peta hash sebagai tampilan yang disetel menggunakan keySet() , values() , dan entrySet() metode masing-masing. Misalnya,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {
    HashMap<Integer, String> languages = new HashMap<>();

    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // return set view of keys
    // using keySet()
    System.out.println("Keys: " + languages.keySet());

    // return set view of values
    // using values()
    System.out.println("Values: " + languages.values());

    // return set view of key/value pairs
    // using entrySet()
    System.out.println("Key/Value mappings: " + languages.entrySet());
  }
}

Keluaran

HashMap: {1=Java, 2=Python, 3=JavaScript}
Keys: [1, 2, 3]
Values: [Java, Python, JavaScript]
Key/Value mappings: [1=Java, 2=Python, 3=JavaScript]

Pada contoh di atas, kami telah membuat peta hash bernama bahasa . Di sini, kami mengakses kunci , nilai , dan kunci/nilai pemetaan dari hashmap.

Bacaan yang Disarankan

  • Java HashMap get()
  • Java Hashmap getOrDefault()
  • Java HashMap keySet()
  • Nilai Java HashMap()
  • Entri Java HashMap Set()

3. Ubah Nilai HashMap

Kita dapat menggunakan replace() metode untuk mengubah nilai yang terkait dengan kunci dalam hashmap. Misalnya,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("Original HashMap: " + languages);

    // change element with key 2
    languages.replace(2, "C++");
    System.out.println("HashMap using replace(): " + languages);
  }
}

Keluaran

Original HashMap: {1=Java, 2=Python, 3=JavaScript}
HashMap using replace(): {1=Java, 2=C++, 3=JavaScript}

Pada contoh di atas, kami telah membuat peta hash bernama bahasa . Perhatikan ekspresinya,

languages.replace(2, "C++");

Di sini, kami mengubah nilai yang dirujuk oleh kunci 2 dengan nilai baru C++ .

HashMap class juga menyediakan beberapa variasi dari replace() metode. Untuk mempelajari lebih lanjut, kunjungi

  • Java HashMap ganti()
  • Java HashMap replaceAll()

4. Hapus Elemen HashMap

Untuk menghapus elemen dari hashmap, kita dapat menggunakan metode remove(). Misalnya,

import java.util.HashMap;

class Main {
  public static void main(String[] args) {

    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // remove element associated with key 2
    String value = languages.remove(2);
    System.out.println("Removed value: " + value);

    System.out.println("Updated HashMap: " + languages);
  }
}

Keluaran

HashMap: {1=Java, 2=Python, 3=JavaScript}
Removed value: Python
Updated HashMap: {1=Java, 3=JavaScript}

Di sini, remove() metode mengambil kunci sebagai parameternya. Kemudian mengembalikan nilai terkait dengan kunci dan menghapus entri .

Kami juga dapat menghapus entri hanya dalam kondisi tertentu. Misalnya,

remove(2, "C++");

Di sini, remove() metode hanya menghapus entri jika kunci 2 dikaitkan dengan nilai C++ . Sejak 2 tidak terkait dengan C++ , itu tidak menghapus entri.

Untuk mempelajari lebih lanjut, kunjungi Java HashMap remove().


Metode HashMap Lainnya

Metode Deskripsi
jelas() menghapus semua pemetaan dari HashMap
hitung() menghitung nilai baru untuk kunci yang ditentukan
computeIfAbsent() menghitung nilai jika pemetaan untuk kunci tidak ada
computeIfPresent() menghitung nilai untuk pemetaan jika kunci ada
gabung() menggabungkan pemetaan yang ditentukan ke HashMap
kloning() membuat salinan dari HashMap
berisiKey() memeriksa apakah kunci yang ditentukan ada di Hashmap
berisiValue() memeriksa apakah Hashmap berisi nilai yang ditentukan
ukuran() mengembalikan jumlah item dalam HashMap
isEmpty() memeriksa apakah Hashmap kosong

Iterasi melalui HashMap

Untuk mengulangi setiap entri hashmap, kita dapat menggunakan Java untuk setiap loop. Kami dapat mengulangi melalui hanya tombol , hanya lembah , dan pemetaan kunci/nilai . Misalnya,

import java.util.HashMap;
import java.util.Map.Entry;

class Main {
  public static void main(String[] args) {

    // create a HashMap
    HashMap<Integer, String> languages = new HashMap<>();
    languages.put(1, "Java");
    languages.put(2, "Python");
    languages.put(3, "JavaScript");
    System.out.println("HashMap: " + languages);

    // iterate through keys only
    System.out.print("Keys: ");
    for (Integer key : languages.keySet()) {
      System.out.print(key);
      System.out.print(", ");
    }

    // iterate through values only
    System.out.print("\nValues: ");
    for (String value : languages.values()) {
      System.out.print(value);
      System.out.print(", ");
    }
    
    // iterate through key/value entries
    System.out.print("\nEntries: ");
    for (Entry<Integer, String> entry : languages.entrySet()) {
      System.out.print(entry);
      System.out.print(", ");
    }
  }
}

Keluaran

HashMap: {1=Java, 2=Python, 3=JavaScript}
Keys: 1, 2, 3,
Values: Java, Python, JavaScript,        
Entries: 1=Java, 2=Python, 3=JavaScript,

Perhatikan bahwa kami telah menggunakan Map.Entry dalam contoh di atas. Ini adalah kelas bersarang dari Map antarmuka yang mengembalikan tampilan (elemen) peta.

Pertama-tama kita perlu mengimpor java.util.Map.Entry paket untuk menggunakan kelas ini.

Kelas bersarang ini mengembalikan tampilan (elemen) peta.


Membuat HashMap dari Peta Lain

Di Java, kita juga bisa membuat hashmap dari peta lain. Misalnya,

import java.util.HashMap;
import java.util.TreeMap;

class Main {
  public static void main(String[] args) {

    // create a treemap
    TreeMap<String, Integer> evenNumbers = new TreeMap<>();
    evenNumbers.put("Two", 2);
    evenNumbers.put("Four", 4);
    System.out.println("TreeMap: " + evenNumbers);

    // create hashmap from the treemap
    HashMap<String, Integer> numbers = new HashMap<>(evenNumbers);
    numbers.put("Three", 3);
    System.out.println("HashMap: " + numbers);
  }
}

Keluaran

TreeMap: {Four=4, Two=2}
HashMap: {Two=2, Three=3, Four=4}

Pada contoh di atas, kita telah membuat TreeMap bernama evenNumbers . Perhatikan ekspresinya,

numbers = new HashMap<>(evenNumbers)

Di sini, kami membuat HashMap nomor bernama menggunakan TreeMap . Untuk mempelajari lebih lanjut tentang peta pohon, kunjungi Java TreeMap.

Catatan :Saat membuat peta hash, kami dapat menyertakan parameter opsional:kapasitas dan faktor beban . Misalnya,

HashMap<K, V> numbers = new HashMap<>(8, 0.6f);

Di sini,

  • 8 (kapasitas 8) - Ini berarti dapat menyimpan 8 entri.
  • 0.6f (faktor beban adalah 0,6) - Ini berarti setiap kali tabel hash kami diisi 60%, entri dipindahkan ke tabel hash baru dua kali lipat ukuran tabel hash asli.

Jika parameter opsional tidak digunakan, maka default kapasitas akan menjadi 16 dan faktor muat default default akan menjadi 0,75 .


java

  1. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Antarmuka Jawa
  6. Kelas Anonim Java
  7. Java mencoba-dengan-sumber daya
  8. Anotasi Jawa
  9. Pernyataan Jawa
  10. Vektor Jawa