Perbedaan-perbedaan Antara Hashtable dan HashMap di Java

Ditulis oleh Lord Voldemort, dipublikasi pada 09 Aug 2016 dalam kategori Tips & Trik
Perbedaan-perbedaan Antara Hashtable dan HashMap di Java - CodePolitan.com

HashTable dan HashMap adalah dua collection berbasis hash yang ada di Java untuk memetakan objek dalam bentuk pasangan key - value (kunci - nilai). Meskipun sama-sama berbasis hash namun keduanya memiliki beberapa perbedaan yang signifikan. Tanpa memahami perbedaan diantara Hashtable dan Hashmap, kita bisa saja menggunakan Hashtable di program yang seharusnya menggunakan HashMap sehingga program yang dibuat menemui masalah yang sulit untuk dicari dan diperbaiki.

Contoh Program HashMap

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

public class ContohHashMap {

    public static void main(String[] args) {

        // Deklarasi objek HashMap baru
        HashMap nilai = new HashMap();

        // Menambahkan data ke objek
        nilai.put("Andi", 85.2);
        nilai.put("Budi", 100.0);
        nilai.put("Edi", 88.5);
        nilai.put("Fera", 87.20);

        // Mengakses data HaspMap dengan foreach
        for (Map.Entry hasil : nilai.entrySet()) {
            System.out.println(hasil.getKey() + " : " + hasil.getValue());
        }

    }
}

Contoh Program Hashtable

import java.util.Hashtable;
import java.util.Map;

public class ContohHashTable {
    public static void main(String[] args) {
        // Deklarasi objek Hashtable baru
        Hashtable nilai = new Hashtable();

        // Menambahkan data ke objek
        nilai.put("Andi", 85.2);
        nilai.put("Budi", 100.0);
        nilai.put("Edi", 88.5);
        nilai.put("Fera", 87.20);

        // Mengakses data Hashtable dengan foreach
        for (Map.Entry hasil : nilai.entrySet()){
            System.out.println(hasil.getKey() + " : " + hasil.getValue());
        }
    }
}

Sebelum melihat perbedaan diantara HashMap dan Hashtable, mari kita liaht persamaan yang mereka miliki.

Baca juga: Aplikasi CRUD Java Sederhana Menggunakan Database MySQL

Persamaan antara Hashtable dan HashMap di Java

Terdapat banyak persamaan yang dimiliki oleh Hashtable dan HashMap di Java yang sangat baik untuk diketahui. Persamaan ini juga akan membantu kita dalam menentukan perbedaan antara HashMap dan Hashtable.

  1. Baik Hashtable maupun HashMap mengimplementasikan interface java.util.Map.
  2. Hashtable dan HashMap merupakan collection berbasis hash yang bekerja dengan prinsip-prinsip hashing.
  3. Hashtable dan HashMap memiliki performa constant time dalam menyimpan maupun mengambil objek-objek yang ada.
  4. Hashtable dan HashMap merupakan bagian dari framework collection di Java sejak JDK 4.

Perbedaan antara Hashtable dan HashMap di Java

Setelah membahas persamaan diantara keduanya, sekarang mari kita lihat perbedaan antara Hashtable dan HashMap.

  1. Perbedaan yang paling mencolok adalah Hashtable adalah collection yang thread-safe dengankan HashMap tidak. Artinya apabila resource Hashtable digunakan dalam waktu yang bersamaan, maka dapat dipastikan bahwa data yang ada akan selalu memiliki hasil yang sama (datanya tersinkronisasi). Sedangkan, apabila kita menggunakan resource HashMap dalam waktu yang bersamaan, kita bisa saja mendapatkan hasil yang berbeda.
  2. Perbedaan kedua yang tak kalah penting adalah performanya. Karena HashMap tidak tersinkronisasi, maka ia memiliki performa yang lebih baik dibanding Hashtable(dalam hal kecepatan).
  3. Perbeddaan selanjutnya adalah bahwa Hastable Hashtable merupakan kelas obsolete yang artinya penggunaan Hashtable sudah tidak disarankan. Apabila ingin menggunakan Hashtable kita disarankan untuk menggunakan ConcurrentHasMap.

Demikianlah perbedaan-perbedaan yang penting untuk diketahui dari Hashtable dan HashMap di Java. Apabila pembaca mengetahui perbedaan-perbedaan lainnya, jangan sungkan untuk berbagi lewat kolom komentar di bawah. Diterjemahkan dengan penambahan dari artikel berjudul "5 difference between Hashtable and HashMap in Java" atas ijin dari Javin Paul.



Berlangganan Informasi CodePolitan Melalui Email

Jangan sampai kamu melewatkan informasi penting tentang pemrograman dan teknologi! Kamu bisa berlangganan Newsletter CodePolitan dengan cara mengisi formulir di samping.