分类

  • ArrayList(重点)
  • Vector
  • LinkedList

1,ArrayList

  • 数组结构实现,所有必须连续空间存储,查询快,增删慢。
  • JDK1.2之后加入,运行效率快,线程不安全

2,Vector

  • 数组结构实现,所有必须连续空间存储,查询快,增删慢。
  • JDK1.2之后加入,运行效率慢,线程安全

(ArrayList和Vector最大的区别在于线程安不安全和运行效率)

3,LinkedList

  • 双向链表结构实现,增删快,查询慢。

ArrayList

List list = new ArrayList<>();
ArrayList list = new ArrayList<>();

1,常用方法

见文章

  • Java集合(三) List子接口
  • Java集合(二) Collection父接口

2,ArrayList遍历

1,使用迭代器遍历(Iterator)

Iterator it = arrayList.iterator();
while(it.hasNext()){
  Student s = (Student)it.next(); //强转
}

2,使用列表迭代器遍历(ListIterator)

ListIterator li = arrayList.listIterator();
while(li.hasNext()){
  Student s = (Student)li.next(); //从前往后遍历
}

while(li.hasPrevious()){
  Student s = (Student)li.previous();//从后往前遍历
}

(还有for循环遍历和增强for循环遍历,因为都是List的子接口,懒得写了)

3,底层源码

属性

DEFAULT_CAPACITY = 10; //默认容量
//注意:如果没有向集合中添加任何元素时,容量0,添加一个后,容量为10
//每次扩容是原来的1.5倍
elementData //存放元素的数组
size //实际元素个数

Vector

List list = new Vector<>();
ArrayList list = new Vector<>();

1,常用方法

见文章

  • Java集合(三) List子接口
  • Java集合(二) Collection父接口

2,遍历

1,老四种遍历方式

2,中枚举器遍历

Enumeration en = vector.elements();
while(en.hasMoreElements()){
  String o = (String)en.nextElement();
  sout(o);
}

LinkedList

所有都和List一样。

点击我回到首页