Perbedaan antara hashmap dan hashset adalah pertanyaan yang paling sering diajukan dalam wawancara Java. Jika kerangka kerja koleksi dan wawancara multi-utas tidak terlibat, dapat dikatakan bahwa itu tidak lengkap. Masalah dengan kerangka kerja pengumpulan tidak melibatkan hashset dan hashmap, dan dapat dikatakan tidak lengkap. Hashmap dan Hashset keduanya merupakan bagian dari kerangka kerja koleksi, yang memungkinkan kami untuk menggunakan koleksi objek. Kerangka kerja koleksi memiliki antarmuka dan implementasi sendiri, yang terutama dibagi menjadi antarmuka yang ditetapkan, daftar antarmuka dan antarmuka antrian. Mereka memiliki karakteristik sendiri. Set tidak mengizinkan objek memiliki nilai duplikat, dan daftar memungkinkan duplikat. Ini mengindeks objek dalam set. Prinsip kerja antrian adalah algoritma FCFS (pertama datang, server pertama).
Pertama mari kita lihat apa hashmap dan hashset, dan kemudian membandingkan perbedaan di antara mereka.
Apa itu hashset
Hashset mengimplementasikan antarmuka yang ditetapkan, yang tidak memungkinkan nilai duplikat pada set. Ketika kami menyebutkan hashset, hal pertama adalah untuk memastikan bahwa objek mengesampingkan metode setara () dan hashcode () sebelum menyimpan objek dalam hashset, sehingga objek dapat dibandingkan apakah nilai objek sama, sehingga memastikan bahwa tidak ada objek yang sama yang disimpan dalam set. Jika kami tidak menulis ulang kedua metode ini, implementasi default dari metode ini akan digunakan.
Metode Boolean Add (Object O) publik digunakan untuk menambahkan elemen dalam set. Ketika nilai elemen diulang, itu akan segera mengembalikan false, dan jika berhasil ditambahkan, itu akan mengembalikan true.
Apa itu hashmap
HashMap mengimplementasikan antarmuka peta, yang memetakan pasangan nilai kunci. Kunci duplikat tidak diizinkan di peta. Ada dua implementasi dasar dari antarmuka peta, hashmap dan treemap. TreeMap menyimpan urutan objek, sedangkan hashmap tidak bisa. HashMap memungkinkan kunci dan nilai menjadi nol. HashMap tidak disinkronkan, tetapi kerangka kerja pengumpulan menyediakan metode untuk memastikan bahwa hashmap disinkronkan, sehingga ketika beberapa utas mengakses hashmap pada saat yang sama, ia dapat memastikan bahwa hanya satu utas yang mengubah peta.
Metode Public Object Pl (Kunci Objek, Nilai Objek) digunakan untuk menambahkan elemen ke peta.
Anda dapat membaca artikel ini untuk melihat bagaimana HashMap bekerja, dan artikel ini untuk melihat bagaimana hashmap dan hashtable berbeda.
Perbedaan antara hashset dan hashmap
| *Hashmap* | *Hashset* |
| Hashmap mengimplementasikan antarmuka peta | Hashset mengimplementasikan set antarmuka |
| Hashmap untuk menyimpan pasangan nilai kunci | Hashset hanya menyimpan objek |
| Gunakan metode put () untuk memasukkan elemen ke dalam peta | Gunakan metode add () untuk memasukkan elemen ke dalam set |
| Hashmap menggunakan objek utama untuk menghitung nilai kode hash | HashSet menggunakan objek anggota untuk menghitung nilai kode hash. Kode hash mungkin sama untuk dua objek, sehingga metode Equals () digunakan untuk menilai kesetaraan objek. Jika kedua objek berbeda, maka kembalikan salah. |
| Hashmap lebih cepat karena menggunakan satu -satunya kunci untuk mendapatkan objek | Hashset lebih lambat dari hashmap |
Jika Anda tahu perbedaan lain, silakan tinggalkan pesan.
Tautan Asli: Terjemahan Javarevisited: ImportNew.com - Tang Xiaoouan Tautan Terjemahan: http://www.importnew.com/6931.html