IT虾米网

容器详解

xmjava 2018年10月08日 编程语言 126 0

1.Collection/Set/List的区别与联系

  Collection接口: 最基本的集合接口,派生了两个子接口Set和List

  Set: 无序且不可重复

  List:有序可重复

 

2.ArrayList和LinkedList、Vector的区别

  ArrayList:基于动态数组,便于随机访问。当需要增长时,ArrayList却是原来的一半

  LinkedList:基于链表,便于新增和删除

  Vector:使用了synchronized同步方法,线程安全。当需要增长时,Vector默认增长为原来一培

 

3.TreeSet和HashSet的区别

  TreeSet:基于二叉树实现,数据是自动排好序的,不允许放入null值

  HashSet:基于哈希表实现的,HashSet数据是无序的,只能放入一个null值

 

4.Map中的key不能重复,重复的话,后面的key会把前面的key替换掉

 

5.HashMap和Hashtable、ConcurrentHashMap的区别

  一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
  二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
  三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

  注:ConcurrentHashMap 是 HashMap 线程安全的实现,并且逐渐取代 Hashtable 的使用,因为 Hashtable 锁的机制是对整个对象加锁,而 ConcurrentHashMap 使用的是局部锁技术,实际上就是把 Map 分成了 N 个 Seg ment,put 和 get 的时候, 都是现根据 key.hashCode()算出放到哪个 Segment 中,而这里的每个 segment 都相当于一个小的 Hashtable,性能将高于 HashTable

 

6.Collection 和 Collections的区别
  Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
  Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

 

 

 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

面向对象详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。