题目:请问ArrayList,LinkedList以及Vector的区别?
1,ArrayList底层实际是采用数组实现的(并且该数组的类型是Object类型)
2,如果是jdk6的话,采用Arrays.copyOf()方法来生成一个新的数组,如果是jdk5.0的话,使用的是System.arraycopy方法
3,List list = new ArrayList();时,底层会生成一个长度为10的数组来存放对象。( jdk8是在 add方法里做的自增长 )
4,对于ArrayList和Vector底层都是用数组实现的(该数组类型都是一个Object类型的数组)
5,对于ArrayList,所有的方法都是不同步的,对于Vector,大部分public方法都是同步的。
6,对于ArrayList,查找速度非常快,增加和删除操 作非常慢。(本质上是有数组的特点来决定的)
7,对于LinkedList,查找速度非常慢,增加和删除 操作非常快。(本质上是由双向循环链表的特点来决定的)
新闻热点
疑难解答