From: http://java.ccidnet.com/art/3737/20060428/533331_1.html
Hashtable和HashMap的区别:
1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类;
2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个静态方法得到解决:
Map Collections.synchronizedMap(Map m)
这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。
3.在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某个键,而应该用containsKey()方法来判断。
分享到:
相关推荐
4. **HashMap和Hashtable有何异同?** - **HashMap**:非同步,允许null键和值,提供更快的性能。 - **Hashtable**:同步,不允许null键和值,较慢,但线程安全。 5. **TreeSet和LinkedHashSet的区别是什么?** ...
本资源摘要信息将从给定的文件中生成相关知识点,包括 Java 中的抽象类和接口、HashMap 和 HashTable 的区别、String 类的不可变性、Java 中的异常机制、Java 线程以及编程题的解决方案。 1. Java 中的抽象类和接口...
11. HashMap和Hashtable的主要区别在于线程安全性、null键值支持和迭代器类型。Hashtable是线程安全的,HashMap不是;Hashtable不支持null键和值,而HashMap允许null键和值;Hashtable的迭代器是旧的 Enumeration,...
3. 表达式`y+=z--/++x`:在Java中,后缀`++`和前缀`++`的区别会影响计算顺序,此表达式的结果为3。 4. `Math.round`函数:`Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。 5. 表达式计算: - A选项:`x||x...
通过这段代码的学习,我们可以了解到如何使用`StringTokenizer`来分割字符串,以及如何使用`Hashtable`来记录和操作数据。这对于处理文本数据、统计字符出现频率等任务非常有用。此外,代码还展示了如何在Java中使用...
2. **Hashtable原理及HashMap与Hashtable的区别**:Hashtable是一个古老的线程安全的键值对容器,不允许null键值;HashMap允许null键值,且非线程安全。 3. **Servlet生命周期**:Servlet的生命周期包括加载与实例...
7. HashMap和Hashtable的区别:HashMap非同步,允许null键和值;Hashtable是同步的,不接受null键和值。 8. 类设计:可以创建一个名为Point的类,包含两个属性x和y,分别表示点的横纵坐标。通常,还会包含构造方法...
- **HashMap vs Hashtable**:`HashMap`允许键和值为`null`,而`Hashtable`不允许;`HashMap`线程不安全,而`Hashtable`线程安全。 - **对象创建与管理**:在Java中,对象的创建和管理是非常基础且重要的知识点。 ...
- **知识点**: HashMap与Hashtable的主要区别。 - **答案解析**: 主要区别在于`HashMap`允许键值为null,而`Hashtable`不允许;`Hashtable`是线程安全的,而`HashMap`不是。 8. **自定义类实现** - **知识点**:...
这些对象是HashMap, Hashtable, HashSet,等等。 在设计hashCode()函数时,需要注意以下几点: * 如果x.equals(y)“返回true”,那么x和y的hashCode()必须相等。 * 如果x.equals(y)“返回false”,那么x和y的...
HashMap和Hashtable都是Map接口的实现,HashMap是非同步的,而Hashtable是同步的。 16. float f = 3.4是不正确的,应该写为float f = 3.4f。 17. final声明变量不可变,finally确保代码块总会执行,finalize是对象...
在Java集合框架中,HashMap是一个基于哈希表实现的Map接口实现,提供了快速的插入、删除和查找操作。而Vector类是动态数组,它的容量可以根据需要自动增长。Iterator是用于遍历集合的接口,尤其是对于List接口的迭代...
18. **HashMap与Hashtable的主要区别是什么?** HashMap是非同步的,允许null键值对,而Hashtable是同步的,不接受null键值对。 19. **ArrayList与Vector的区别是什么?** ArrayList和Vector都是动态数组,但...
- **解析**:`HashMap`允许键和值为null,而`Hashtable`不允许键或值为null。此外,`Hashtable`是线程安全的,而`HashMap`不是。 #### 8. 设计模式——观察者模式 - **题目**:设计一个观察者模式的应用场景。 - **...