ما الفرق بين 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 باستخدام