Lompat ke konten Lompat ke sidebar Lompat ke footer

Perbedaan HashMap dan HashSet

Perbedaan HashMap dan HashSet

Berikut perbedaan HashMap dan HashSet. HashMap dan HashSet adalah classs yang mengimplementasikan interfaces Java collection framework. Class HashMap diimplementasikan dari Map interface, sedangkan HashSet diimplementasikan dari Set interface.

HashMap adalah struktur data di Java yang memetakan kunci ke suatu nilai. Di HashMap, setiap kunci harus unik, namun nilai duplikat diperbolehkan.

HashSet adalah struktur data di Java yang menyimpan sekumpulan nilai unik. Ini benar-benar tidak mengizinkan nilai duplikat.

Pada artikel ini, kita akan membahas perbedaan antara kedua Java collection framework classes ini. Kita bahkan akan belajar memutuskan skenario mana yang harus Agan gunakan HashMap dan skenario mana yang harus Agan gunakan HashSet.

Apa itu HashMap?

HashMap adalah generic Java class yang mengimplementasikan antarmuka Java Collection Framework Map. Ia menggunakan tabel hash untuk menyimpan elemen di map yang menggunakan mekanisme hashing secara internal.

Setiap elemen HashMap adalah sepasang kunci dan nilai. Kunci map harus unik meskipun nilai terkait duplikat diperbolehkan.

Class dideklarasikan sebagai:

Class HashMap<K, V>

K mendefinisikan tipe kunci, dan V mendefinisikan tipe nilai terkait. Class HashMap memperluas kelas AbstrakMap dan mengimplementasikan Map interface. Jadi, ia menggunakan metode yang mereka definisikan dan pada akhirnya tidak mendefinisikan metodenya sendiri.

Kompleksitas waktu untuk metode get() dan put() tetap konstan, yaitu O(1), bahkan untuk koleksi yang besar.

  • get() – digunakan untuk mengambil nilai yang terkait dengan kunci tertentu yang diberikan ke metode sebagai parameter.
  • put() – digunakan untuk memetakan nilai tertentu ke kunci tertentu di peta.
  • contains() – digunakan untuk memeriksa apakah HashMap berisi kunci tertentu.
  • remove() – digunakan untuk menghapus pemetaan kunci tertentu dari HashMap.
  • size() – digunakan untuk memeriksa ukuran HashMap, yaitu jumlah pasangan nilai kunci.

Apa itu HashSet?

HashSet adalah generic Java class yang mengimplementasikan Set interface. Class menggunakan tabel hash untuk menyimpan elemen guna membuat koleksi yang setiap elemennya unik.

HashSet secara ketat tidak mengizinkan duplikat di set. Class dideklarasikan sebagai:

Class HashSet<E>

E mendefinisikan tipe objek yang akan ditampung oleh set tersebut.

Mekanisme yang digunakan tabel hash untuk menyimpan elemen adalah hashing. Fungsi hashing menerima kunci dan menghasilkan nilai unik yang kita sebut sebagai kode hash.

Nilai kode hash ini digunakan sebagai indeks tempat penyimpanan data yang terkait dengan kunci.

Catatan: Dengan hashing, kompleksitas waktu metode seperti add(), berisi(), hapus() dan ukuran() tetap konstan, yaitu O(1).

add() – digunakan untuk menambahkan elemen ke HashSet.

contains() – digunakan untuk memeriksa apakah HashSet berisi tertentu atau tidak.

remove() – digunakan untuk menghapus elemen dari HashSet.

size() – digunakan untuk memeriksa ukuran HashSet.

Perbedaan HashMap dan HashSet

  1. HashMap mengimplementasikan Map interface, sedangkan HashSet mengimplementasikan Set interface dari Java Collection Framework.
  2. Kita menggunakan HashMap untuk menyimpan elemen yang setiap elemennya merupakan pasangan nilai kunci. Namun, kita menggunakan HashSet untuk menyimpan elemen unik saja.
  3. Elemen HashMap tidak mengizinkan kunci duplikat, tetapi mengizinkan nilai duplikat. Di sisi lain, elemen HashSet harus unik.
  4. Di HashMap, koleksi dapat memiliki satu Kunci Null dan mungkin memiliki beberapa nilai Null. Namun, koleksi HashSet dapat memiliki satu nilai Null.
  5. Untuk memasukkan elemen ke dalam HashMap, kita menggunakan metode put(). Sebaliknya, untuk memasukkan elemen ke HashSet, kita menggunakan metode add().
  6. Mengambil elemen dari HashMap lebih cepat daripada HashSet, karena nilainya dikaitkan dengan kunci unik. Di sisi lain, elemen HashSet digunakan untuk menghitung kode hash, yang mungkin hasilnya sama untuk dua elemen.

Persamaan Antara HashMap dan HashSet

  1. HashMap dan HashSet adalah class yang mengimplementasikan interface yang merupakan bagian dari Java Collection Framework.
  2. Keduanya menggunakan tabel hash untuk menyimpan elemen.
  3. Kompleksitas kinerja kedua kelas ini adalah O(1).
  4. HashMap dan HashSet tidak menjamin urutan elemen yang disimpan. Urutan penambahan elemen di kedua iterator tidak wajib dibaca dalam urutan yang sama.
  5. Kita menggunakan iterator untuk melintasi HashMap dan HashSet.
  6. Keduanya tidak mendefinisikan metode baru apa pun dan hanya menggunakan metode yang disediakan oleh superclass dan antarmukanya.

Itulah perbedaan HashMap dan HashSet. Semoga artikel ini bermanfaat buat Agan dan terima kasih atas kunjungannya.

Tanto Roni
Tanto Roni Saya penulis yang mengulas berbagai informasi seputar dunia teknologi, gadget, serta beberapa tips terkait masalah pada perangkat android.