当前位置: 首页 > 面试题库 >

在Java中使用Hashtable,Vector或HashMap或ArrayList

孙夕
2023-03-14
问题内容

Java开发受到压力的一个模因总是使用ArrayList而不是Vector。不推荐使用vector。可能是正确的,但是Vector和Hashtable具有同步的优点。

我正在使用面向大量并发的应用程序,使用像Vector一样同步的对象是否有益?看来他们有自己的位置?


问题答案:

Vector和Hashtable的问题在于它们仅在本地同步。它们不会在并发应用程序中中断(就像在损坏的数据中一样),但是,由于存在本地同步(例如,get已同步,但仅直到get返回),您仍然希望针对此类情况执行自己的同步作为内容的迭代。现在,即使您的put方法也需要一些额外的同步才能与迭代同步配合使用,最终您的Hashtable
/ Vector会被双重同步。



 类似资料:
  • 问题内容: 我想知道Java在添加项目时如何在(或)中对项目进行排序。密钥是按哈希码,内存引用还是分配优先级排序的? 这是因为我注意到中的相同对并不总是以相同的顺序排列 问题答案: 无序的 您不能也不应承担任何其他责任。 此类无法保证地图的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。 使用插入顺序。 此实现的不同之处在于,它维护一个遍历其所有条目的双向链接列表。此链表定义了迭代顺序,通常

  • 问题内容: 有Java API中的可膨胀的数组类相当于或可以与图元可以使用类(INT,炭,双,等)? 我需要一个快速,可扩展的整数数组,将其包装在类中以便与或一起使用似乎很浪费。我的谷歌福使我失败。 问题答案: 不幸的是,至少在Java API中 没有此类 。有Java第三方产品的原始集合。 将自动装箱与现有集合类(特别是实现)一起使用非常危险。例如: 这也是神秘访问的常见来源(也许通过):

  • 我有这些学生物品清单, 我想从这些学生列表对象生成哈希图。 hashmap包含sudentid和name list键值对。

  • 问题内容: 何时使用哈希图或树图? 我知道可以在需要对元素进行排序时使用TreeMap对其进行迭代。只是吗?当我只想查阅地图或某些最佳特定用途时,没有优化? 问题答案: 哈希表(通常)执行搜索操作(查找),其复杂度限制为,平均情况复杂度为;但是,二进制搜索树(BST)执行搜索操作(查找),其复杂度限制为,平均情况复杂度为。(您自己)应该了解每个(每个)数据结构的实现,以了解其优缺点,操作时间复杂度

  • 我需要一个“列表”或“地图”,。。。此列表将从另一个ArrayList中添加。当A的参数等于时,对象A被视为等于另一个对象。 我的问题是我只想添加一个列表中不存在的对象。我想知道这两种实施方案之间的区别。使用ArrayList或HashMap 哪种方法可以更快地添加大量对象(超过1000个对象,或更多对象)有更好的模式解决我的问题吗???

  • 本文向大家介绍Java中HashMap和Hashtable之间的区别,包括了Java中HashMap和Hashtable之间的区别的使用技巧和注意事项,需要的朋友参考一下 Hashtable是原始java.util的一部分,是Dictionary的具体实现。但是,Java 2重新设计了Hashtable,使其也实现了Map接口。因此,哈希表现在已集成到集合框架中。它类似于HashMap,但已同步。