Java’da HashMap ve Hashtable Kullanımı

sametklou

Java’da HashMap ve Hashtable Kullanımı

Java programlama dilinde, veri yapıları arasında en sık kullanılan yapılar arasında HashMap ve Hashtable bulunmaktadır. Bu yazıda, HashMap ve Hashtable arasındaki farkları inceleyerek hangi yapıyı ne zaman kullanmanız gerektiğini tartışacağız.

1. HashMap

HashMap, Java Collection Framework'ün bir parçasıdır ve key-value çiftlerini depolamak için kullanılır. HashMap, eşsiz anahtarları saklar ve her anahtarın bir değeri vardır. Anahtarlar ve değerler boş olamazlar, ancak null değerler kullanılabilir.

HashMap Kullanımı:

// HashMap oluşturma
HashMap<String, Integer> hashMap = new HashMap<>();

// Değer ekleme
hashMap.put("anahtar1", 1);
hashMap.put("anahtar2", 2);

// Değerlerin alınması
int deger = hashMap.get("anahtar1");
System.out.println(deger);

// Hashmap boyutu
int boyut = hashMap.size();
System.out.println(boyut);

2. Hashtable

Hashtable, HashMap'a oldukça benzer bir yapıya sahiptir. Hashtable da key-value çiftlerini depolamak için kullanılır, ancak Hashtable senkronize edilmiştir, yani çoklu iş parçacıklar tarafından kullanıldığında güvenli bir şekilde çalışır.

Hashtable Kullanımı:

// Hashtable oluşturma
Hashtable<String, Integer> hashtable = new Hashtable<>();

// Değer ekleme
hashtable.put("anahtar1", 1);
hashtable.put("anahtar2", 2);

// Değerlerin alınması
int deger = hashtable.get("anahtar1");
System.out.println(deger);

// Hashtable boyutu
int boyut = hashtable.size();
System.out.println(boyut);

Farklar

  • Senkronizasyon: Hashtable senkronize edilmiştir, bu nedenle çoklu iş parçacıklarında güvenli bir şekilde kullanılabilir. Ancak, bu senkronizasyon maliyeti artırabilir ve performansı olumsuz etkileyebilir.
  • Null Değerler: HashMap, null key ve value'ları desteklerken, Hashtable bu durumu desteklemez ve NullPointerException fırlatır.
  • Performans: Hashtable senkronize edilmiş olduğu için HashMap'dan daha yavaş olabilir. Bu nedenle, performans kritik uygulamalarda HashMap tercih edilebilir.

Bu yazıda, Java'da HashMap ve Hashtable yapılarını inceledik. Hangi yapının ne zaman kullanılması gerektiğini anlamak için farkları ve kullanım örneklerini gördük. Hangi yapıyı tercih edeceğinize karar verirken bu detayları göz önünde bulundurmanız önemlidir.