Avatar ·

ما الفرق بين HashMap و Hashtable في Java؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Java Collections Framework وأصبحت مرتبكًا بين فئتين متشابهتين — HashMap و Hashtable. كلاهما ينفذان واجهة Map ويبدو أنهما يفعلان نفس الشيء: تخزين أزواج key-value. لكنني سمعت أن هناك اختلافات مهمة بينهما، وأن Hashtable يُعتبر قديمًا (deprecated). لقد كتبت كود اختبار صغير، لكنني لا أرى الفرق: ```java import java.util.*; public class TestMap { public static void main(String[] args) { // HashMap Map hashMap = new HashMap<>(); hashMap.put("key1", "value1"); hashMap.put(null, "nullValue"); // يعمل System.out.println("HashMap: " + hashMap); // Hashtable Map hashtable = new Hashtable<>(); hashtable.put("key1", "value1"); // hashtable.put(null, "nullValue"); // يسبب NullPointerException؟ System.out.println("Hashtable: " + hashtable); } } ``` لماذا لا يسمح Hashtable باستخدام