`
13lhqiang
  • 浏览: 14757 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

ArrayList Vector Hashtable HashMap的区别

阅读更多

Hashtable与HashMap的区别:

  1. Hashtable是基于陈旧的Dictionary的子类;HashMap是Java1.2引进的Map接口的一个实现类。
  2. Hashtable中的方法是同步的,线程安全的;而HashMap中的方法在缺省情况下是非同步的。即是说,在多线程应用程序中,不用专门的操 作就安全地可以使用Hashtable了;而对于HashMap,则需要额外的同步机制。但HashMap的同步问题可通过Collections的一个 静态方法得到解决:Map Collections.synchronizedMap(Map m);使用如下:Map map=Collections.synchronizedMap(new HashMap())。这个方法返回一个同步的Map,这个Map封装了底层的HashMap的所有方法,使得底层的HashMap即使是在多线程的环境中也是安全的。
  3. 在HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。当get()方法返回null值时,即可 以表示HashMap中没有该键,也可以表示该键所对应的值为null。因此,在HashMap中不能由get()方法来判断HashMap中是否存在某 个键,而应该用containsKey()方法来判断。而Hashtable中不允许null值。

ArrayList与Vector的区别:

  1. 安全、效率方面:如果要实现同步安全,则要用Vector和Hashtable,否则则用ArrayList和HashMap,因为 ArrayList和HashMap不考虑同步安全的问题,所以效率要高些。但Collections类可以解决这个问题。 Collections.synchronizedList Collections.synchronizedMap
  2. 资源方面:当两者的容量已满时,它们都会自动增长其容量,但Vector是按其容量的一倍增长,而ArrayList则按其容量的50%增加,所以Vector更能节省资源。
  3. 迭代器:Vector和Hashtable使用Enumeration,ArrayList和HashMap使用Iterator

 

Vector,ArrayList和Hashtable,HashMap的区别:

  1. Vector和ArrayList是数值联系对象。按照插入的顺序进行排列,可以有重复值。
  2. Hashtable和HashMap是对象联系对象。按照自己的排列方式进行排序,不可以有重复值。
分享到:
评论

相关推荐

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    比较分析Vector、ArrayList和hashtable hashmap数据结构

    比较Vector、ArrayList和hashtable hashmap

    - HashMap 和 Hashtable 都实现了 Map 接口,HashMap 更快但不是线程安全的,而 Hashtable 是线程安全但较慢。WeakHashMap 则使用弱引用作为键,有助于防止内存泄漏。 - 在选择使用哪种数据结构时,需要考虑性能需求...

    经典讲解List和ArrayList和Vector和HashTable和HashMap区别

    在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`、`ArrayList`、`Vector`、`HashTable`和`HashMap`是五个关键的接口和类,它们各有不同的特性和用途。以下是这些概念的详细解释: 1. **List接口**...

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别

    List、ArrayList、Vector及map、HashTable、HashMap分别的区别 List、ArrayList、Vector及map、HashTable、HashMap是Java容器类中的几个重要的接口和实现类,了解它们之间的区别是非常重要的。 首先,我们来看List...

    Arraylist、Hashtable、Vector

    在Java编程语言中,ArrayList、Hashtable和Vector是三种常见的数据结构,它们都用于存储和管理对象,但各有特点和适用场景。以下是对这三个容器的详细解释: ArrayList是Java集合框架中的一部分,它实现了List接口...

    浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别

    ArrayList和Vector,以及HashMap和Hashtable,都是常用的容器,但它们之间存在一些关键的区别,这将影响到在不同场景下的选择和使用。 首先,我们来看ArrayList和Vector的区别: 1. **同步性**: - `ArrayList` ...

    Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.

    Vector与ArrayList类似,但它提供了一种线程安全的实现,这意味着在多线程环境中,多个线程可以同时访问和修改Vector,而不会导致数据不一致。然而,由于其同步机制,Vector的性能通常低于ArrayList。 3. Map接口与...

    Java容器类List、ArrayList、Vector及map、HashTable应用

    Java容器类List、ArrayList、Vector及map、HashTable应用 List、ArrayList、Vector及map、HashTable是Java中常用的容器类,它们都继承自Collection接口,并提供了不同的实现方式和特点。在实际开发中,选择合适的...

    Hashtable和HashMap的区别:

    ### Hashtable与HashMap的区别详解 #### 一、基本概念与历史背景 在Java编程语言中,`Hashtable` 和 `HashMap` 都是用来存储键值对的数据结构。这两种数据结构虽然相似,但是在实现细节上存在显著差异。 1. **...

    hashmap 实例

    在本文中,我们将深入理解 HashMap 的实例及其工作原理,并与其他数据结构如 Vector、ArrayList、LinkedList 和 Hashtable 进行对比。 首先,我们来看 HashMap 的实例代码: ```java HashMap hashmap = new ...

    java中vector与hashtable操作实例分享

    `Vector`与`ArrayList`类似,都是用来存储对象的动态数组。不同之处在于,`Vector`的每个公共方法都被同步化,确保了在多线程环境下的安全性。这意味着当一个线程正在执行某个操作(如添加、删除或修改元素)时,...

    各种类集 的区别1

    本篇文章主要探讨了两个重要的类集实现:HashMap与Hashtable,以及ArrayList和Vector的区别。 首先,我们来看HashMap与Hashtable的区别: 1. **线程安全性**:HashMap是非线程安全的,它不保证在多线程环境下的...

    最新JAVA线程的全部面试题

    ArrayList和Vector的区别,HashMap和Hashtable的区别

    ArrayList数组列表[借鉴].pdf

    总结来说,ArrayList和Vector在并发环境下的使用需谨慎,HashMap和Hashtable的选择取决于是否需要线程安全。Properties类是处理字符串键值对的理想选择。理解这些类的特性对于优化代码性能和保证数据安全性至关重要...

    map,list,set,stack,queue,vector等区别和特点1

    在Java编程语言中,集合框架是处理对象组织和操作的...在多线程环境中,线程安全的实现如Vector和Hashtable是必要的,但在单线程或性能要求较高的情况下,非线程安全的实现如ArrayList、LinkedList和HashMap通常更优。

    JAVA程序员笔试面试题汇总及答案.pdf

    本资源摘要信息涵盖了 JAVA 程序员笔试面试题汇总及答案,涵盖了基础题、中等题、提高题等多种题型,涉及到访问控制符、ArrayList 和 Vector 的区别、HashMap 和 Hashtable 的区别、Collection 和 Collections 的...

    java集合类面试题总结

    List 中包括 ArrayList、LinkedList、Vector 等,Set 中包括 HashSet、LinkedHashSet 等,Map 中包括 HashMap、Hashtable 等。 List、Set、Map 是否继承自 Collection 接口 List 和 Set 继承自 Collection 接口,...

    农行研发中心-校招常见面试题汇总.pdf

    HashMap和HashTable的主要区别是HashMap线程不安全,而HashTable线程安全。 HashMap允许键值为null,而HashTable不允许键值为null。HashMap继承自AbstractMap,而HashTable继承自Dictionary。 在选择HashMap还是...

Global site tag (gtag.js) - Google Analytics