Collection的子接口之List接口
ArrayList、LinkedList和Vector三者之间的异同?
相同点:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据。
不同点:
-
ArrayList:作为List接口的主要实现类,线程不安全,效率高;底层使用Object[] elementData存储。
-
LinkedList:对于频繁的插入、删除操作,使用此类效率比Arraylist高;底层使用双向链表存储。
-
Vector:作为List接口的古老实现类,线程安全,效率低;底层使用Object[] elementData存储。
ArrayList的JDK1.8之前与之后的实现区别?
- JDK1.7:ArrayList像饿汉式,直接创建一个初始容量为10的
- JDK1.8:ArrayLis t像懒汉式,一开始创建一个长度为0的数组,当添加第一个元素时再创建一个始容量为10的数组
List的方法
- void add(int index, Object ele):在index位置插入ele元素
- boolean addAll(int index, Collection eles):从index位置开始将eles中
的所有元素添加进来 - Object get(int index):获取指定index位置的元素
- int indexOf(Object obj):返回obj在集合中首次出现的位置
- int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位
- Object remove(int index):移除指定index位置的元素,并返回此元素
- Object set(int index, Object ele):设置指定index位置的元素为ele
- List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex
位置的子集合
总结:常用方法
增:add(Object obj)
删:remove(int index)/remove(Object obj)
改: set(int index, Object ele)
查:get(int index)
插:add(int index,Object ele)
长度:size()
遍历:Iterator迭代器;foreach()
LinkedList的方法

浙公网安备 33010602011771号