`

ArrayList 和List,HashMap和Hashtable的区别

 
阅读更多
ArrayList 和List,HashMap和Hashtable的区别 
ArrayList: 使用大小可以按需动态增大的数组来实现IList接口的类,列表中的每个元素都是对象。List接口中的方法是很少的。

List:是类属类(Generic Class),实现的是强类型的(每个元素都在List类实例化时指定了类型)列表,可以通过索引存取元素,可以排序,提供了比较强大的方法集合。

Hashtable:这个类根据key的值计算hash值,依据hash值来组织key/value这样一对一对的数据。可用来做人名匹配到人的各种属性这样的对照表,key可以重复的。

HashMap:和Hashtable类似,但是key具有唯一性。可用来做例如身份证号匹配到人的各种属性这样的映射表。 1、数组:java arrays的元素个数不能下标越界,从很大程度上保证了java程序的安全性,而其他一些语言出现这一问题时常导致灾难性的后果。        array可以存放object和基本数据类型,但创建时必须指定数组的大小,并不能再改变。值得注意的是:当array中的某一元素存放的是objrct reference 时,java不会调用默认的构造函数,而是将其初值设为null,当然这跟java对各类型数据赋默认值的规则是一样的,对基本数据类型同样适用。2、vector:对比于array,当更多的元素被加入进来以至超出其容量时,vector的size会动态增长,而array容量是定死的。同时,vector在删除一些元素后,其所有下标大于被删除元素的元素都依次前移,并获得新下标比原来的小了)。注意:当调用vector的size()方法时,返回vector中实际元素的个数。     vector内部实际是以array实现的,也通过元素的整数索引来访问元素,但它只能存放java.lang.object对象,不能用于存放基本类型数据,比如要存放一个整数10,得用new integer(10)构造出一个integer包装类对象再放进去。当vector中的元素个数发生变化时, 其内部的array必须重新分配并进行拷贝,因此这是一点值得考虑的效率问题。     vetor同时也实现了list接口,所以也可以算作colletion了,只是它还特殊在:vector is synchronized。即vetor对象自身实现了同步机制。3、arraylist:实现了list接口,功能与vetor一样,只是没有同步机制,当然元素的访问方式为从list中继承而来,可存放任何类型的对象。4、hashmap:继承了map接口,实现用keys来存储和访问values,keys和values都可以为空,它与hashtable类的区别在于hashtable类的keys不能为null,并hashtable类有同步机制控制,而hashmap类没有。      在struts类库中实现了一个lablevaluebean,用lable(key)来存储和访问value,很方便。
分享到:
评论

相关推荐

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

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

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

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

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

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

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

    List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)

    Java集合框架完整说明便于了解集合

    Comparator的区别,List和Set集合详解,List和Set的总结,HashMap和HashTable的⽐较,Map的遍历,ArrayList 与 Vector 区别呢?为什么要⽤Arraylist取代Vector呢?HashSet与TreeSet与LinkedHashSet对⽐,HashMap 的⻓...

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

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

    Java 最常见的 208 道面试题:第二模块答案

    21. HashMap 和 Hashtable 有什么区别? 22. 如何决定使用 HashMap 还是 TreeMap? 23. 说一下 HashMap 的实现原理? 24. 说一下 HashSet 的实现原理? 25. ArrayList 和 LinkedList 的区别是什么? 26. 如何实现...

    java程序员面试宝典 含答案

    e:arraylist, vector, hashmap ,hashtable,linklist等的区别; f:String类的相关方法的使用 g:垃圾回收机制的相关知识,如优点,原理等; h:java的异常处理; i:工作流的相关知识;j:多线程问的也很多;k:其他,...

    java源码整理包-集合

    java源码整理包:list,map,ArrayList,HashMap,HashSet,Hashtable,TreeMap,TreeSet,Vector等源码包分享

    Collection,List,Set和_Map用法和区别

    Collection, List, Set 和 Map 用法和区别 Collection 是 Java 中的一种对象集合,提供了许多有用的方法来操作集合元素,例如添加、删除、遍历等。Collection 是一个接口,下面有两个子接口:List 和 Set。 List ...

    java集合类面试题总结

    HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表实现,但它们有所不同。HashMap 允许一个 null 键和多个 null 值,而 Hashtable 不允许 null 键和 null 值。Hashtable 还是同步的,这意味...

    2008-2009年java面试题总结

    HashTable和HashMap的区别; 9。Java中的垃圾回收机制(System.gc和finaliz()); 10。sleeep和stop的区别; 11。notify和notifyAll的区别; 12。写代码来反转list; 13。抽象类和接口有什么不同; 14。常用的布局管理器...

    最新JAVA线程的全部面试题

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

    Java集合类List-Set-Map的区别和联系.doc

    Java 集合类 List-Set-Map 的区别和联系 Java 集合类 List、Set 和 Map 是 Java 语言中最基本的集合类,它们之间存在着紧密的联系和区别。在本文中,我们将对 Java 集合类 List、Set 和 Map 的区别和联系进行详细的...

    JavaSE 笔试 精华

    Hashtable 和 HashMap之间的区别 LinkedList内部以链表形式存储数据。 ArrayList内部以数组形式存储数据。 ? Vector同ArrayList,不过它与ArrayList比较起来是thread-safe的。 Hashtable是继承了Dictionary,是...

    阿里P7面试题包含解答

    HashTable, HashMap,TreeMap区别? 答: 1. HashTable线程同步,HashMap非线程同步。 2. HashTable不允许<键,值>有空值,HashMap允许<键,值>有空值。 3. HashTable使用Enumeration,HashMap使用Iterator。 4. ...

    Java期末复习-类集框架

    List接口、ArrayList类、Vector类、栈操作类Stack、链表操作类LinkList、队列操作接口Queue、Set接口、HashSet类、TreeSet类、SortedSet接口 双值操作接口Map(key->value)及其子接口、子类: SortedMap接口、HashMap...

    list map相关用法实例-流氓版

    Vetor ArrayList HashMap Hashtable的用法实例及多种遍历方法

    java面试题.docx

    HashMap 和 Hashtable 有什么区别? 说一下 HashMap 的实现原理? ArrayList 和 LinkedList 的区别是什么? 并行和并发有什么区别? 说一下 runnable 和 callable 有什么区别? 线程的 run()和 start()有什么区别...

Global site tag (gtag.js) - Google Analytics