在Java中,HashMapHashtable有什么不同?

对于非线程应用程序,哪个更高效?

推荐答案

Java中的HashMapHashtable之间有几个区别:

  1. Hashtable等于synchronized,而HashMap不是.这使得HashMap更适合于非线程应用程序,因为非同步对象通常比同步对象执行得更好.

  2. Hashtable不允许有null个键或值.HashMap允许一个null键和任意数量的null值.

  3. HashMap的一个子类是LinkedHashMap,因此,如果需要可预测的迭代顺序(默认情况下是插入顺序),可以轻松地将HashMap替换为LinkedHashMap.如果你用Hashtable,这就不那么容易了.

既然同步对您来说不是问题,我建议您使用HashMap.如果同步成为问题,您也可以查看ConcurrentHashMap.

Java相关问答推荐

如果它最终将被转换为int类型,为什么我们在Java中需要较小的integer类型?

neo4j java驱动程序是否会在错误发生时自动回滚事务?

为什么BasicComboBoxRenderer在文本不存在或文本为空的情况下设置两次文本?

CAMEL 4中的SAXParseException

如何在带有Micronaut的YAML中使用包含特殊字符的字符串作为键

Java记录的不同序列化/反序列化

在JavaFX项目中注册组合框的控件FX验证器时,模块系统出错

如何获得执行人?

Java编译器抛出可能未正确初始化的错误?

PDFBox未加载内容

无法在Java中处理PayPal支付响应

如何在Microronaut中将 map 读取为 map

使用多个RemoteDatabase对象的一个线程

有效的公式或值列表必须少于或等于255个字符

buildDir:File!&#的getter解决方案是什么?39.被抛弃

带有可选部分的Java DateTimeForMatter

除0错误/抱歉我的句子是PT

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

如何对存储为字符串的大数字数组进行排序?

Java CDI:@Singleton@Startup@Inject无法实现接口