Collection的子接口之List接口

ArrayList、LinkedList和Vector三者之间的异同?

相同点:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据。

不同点:

  1. ArrayList:作为List接口的主要实现类,线程不安全,效率高;底层使用Object[] elementData存储。

  2. LinkedList:对于频繁的插入、删除操作,使用此类效率比Arraylist高;底层使用双向链表存储。

  3. Vector:作为List接口的古老实现类,线程安全,效率低;底层使用Object[] elementData存储。

ArrayList的JDK1.8之前与之后的实现区别?

  1. JDK1.7:ArrayList像饿汉式,直接创建一个初始容量为10的
  2. JDK1.8:ArrayLis t像懒汉式,一开始创建一个长度为0的数组,当添加第一个元素时再创建一个始容量为10的数组

List的方法

  1. void add(int index, Object ele):在index位置插入ele元素
  2. boolean addAll(int index, Collection eles):从index位置开始将eles中
    的所有元素添加进来
  3. Object get(int index):获取指定index位置的元素
  4. int indexOf(Object obj):返回obj在集合中首次出现的位置
  5. int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位
  6. Object remove(int index):移除指定index位置的元素,并返回此元素
  7. Object set(int index, Object ele):设置指定index位置的元素为ele
  8. 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的方法


posted on 2021-07-03 21:41  yicurtain  阅读(43)  评论(0)    收藏  举报