有人面试总喜欢问比如说HashMap和HashTable有什么区别啊?Vector和ArrayList有什么不同啊。
HashMap和HashTable
=============================
- null 键
* HashMap 允许 null 键
* HashTable 不允许 null 键 - 同步
* HashMap是非同步的,非线程安全的
* HashTable是同步的,线程安全的 - 性能
同步必然影响性能,因此在单线程环境中,HashMap的性能较HashTable更优 - 遍历
HashMap和HashTable中都有以下三个遍历方法:
* values()
* keySet()
* entrySet()
这三个方法都是fail-fast iterator ,就是当Map里有结构性的变化时,就是失败(除了iterator.remove);而在HashTable中除了这三个方法,还有两个方法:
* keys()
* elements()
这两个方法返回的是Enumeration<T>类型,这个方法允许用户在遍历时进行结构性的修改而不抛出异常。 - ConcurrentHashMap
Java 5中提供了除HashTable以外的另一个支持并发的HashMap,并且它的性能较HashTable更好。
ArrayList和Vector
================================
首先讲一下它们的共同点:
- 都是基于数组的,可下标索引的容器
- 都是有序的
- 都支持返回Iterator遍历
- 都支持添加 null 和重复的元素
不同点:
- 同步
* ArrayList 是非同步,非线程安全的
* Vector 是同步的,线程安全的 - 性能
同步带来性能损失,因此在单线程中,ArrayList 比Vector 性能要好 - 遍历
和上面HashTable一样,Vector 有一个elements()方法返回Enumeration,可以在遍历的时候操作列表
相关推荐
经典讲解List和ArrayList和Vector和HashTable和HashMap区别
比较Vector、ArrayList和hashtable hashmap
比较分析Vector、ArrayList和hashtable hashmap数据结构
以下是对java中ArrayList与Vector的区别以及HashMap与Hashtable的区别进行了详细的解析。需要的朋友可以过来参考下
List、ArrayList、Vector及map、HashTable、HashMap分别的区别
Java中List、ArrayList、Vector及map、HashTable、HashMap分别的区别.
Comparator的区别,List和Set集合详解,List和Set的总结,HashMap和HashTable的⽐较,Map的遍历,ArrayList 与 Vector 区别呢?为什么要⽤Arraylist取代Vector呢?HashSet与TreeSet与LinkedHashSet对⽐,HashMap 的⻓...
List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)
软件测试笔试题,1) 简述对Vector类的理解,并写出常用到的对向量的增、删、插、定位及获取长度的方法。 答:增-add、差-insert 定位-find ...3) ArrayList和Vector的区别,HashMap和Hashtable的区别
2. Vector和ArrayList、LinkedList区别? Hashtable 和 HashMap之间的区别 LinkedList内部以链表形式存储数据。 ArrayList内部以数组形式存储数据。 ? Vector同ArrayList,不过它与ArrayList比较起来是thread-safe...
ArrayList和Vector的区别,HashMap和Hashtable的区别
27、ArrayList和Vector的区别,HashMap和Hashtable的区别 答:就ArrayList与Vector主要从二方面来说. 一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要...
21. HashMap 和 Hashtable 有什么区别? 22. 如何决定使用 HashMap 还是 TreeMap? 23. 说一下 HashMap 的实现原理? 24. 说一下 HashSet 的实现原理? 25. ArrayList 和 LinkedList 的区别是什么? 26. 如何实现...
4. int 和 Integer 有什么区别5. String 和StringBuffer的区别6. 说出ArrayList,Vector, LinkedList的存储性能和特性7. &和&&的区别8. HashMap和Hashtable的区别9. final, finally, finalize的区别10. Overload和...
7、说出ArrayList,Vector, LinkedList的存储性能和特性8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。9、Collection 和 Collections的区别。10、&和&&的...
1、面向对象的特征有哪些方面 2 2、String是最基本的数据类型吗? 2 3、int 和 Integer 有什么区别 3 4、String 和StringBuffer的区别 3 5、运行时异常与一般异常有何异同?...11、HashMap和Hashtable的区别。 4
Vector,ArrayList, LinkedList的区别是什么? 答: 1. Vector、ArrayList都是以类似数组的形式存储在内存中,LinkedList则以链表的形 式进行存储。 2. List中的元素有序、允许有重复的元素,Set中的元素无序、不允许...
60、HashMap和Hashtable的区别 2 61、List 和 Map 区别? 2 62、List, Set, Map是否继承自Collection接口? 2 63、List、Map、Set三个接口,存取元素时,各有什么特点? 2 64、说出ArrayList,Vector, LinkedList的存储...
如果是对其它指定位置的插⼊、删除操作,最好选择 LinkedList HashMap、HashTable 的区别及其优缺点: HashTable 中的⽅法是同步的 HashMap 的⽅法在缺省情况下是⾮同步的 因此在多线程环境下需要做额外的同步机制。...