目录
1、简介
2、List接口中常用方法
3、List的子类
3.1 ArrayList集合
3.2 LinkedList集合
3.3 Vector集合
参考文章
1、简介
java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支。在 List 集合中允许出现重复的元素,所有的元素是以⼀种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。另外,List 集合还有⼀个特点就是元素有序,即元素的存入顺序和取出顺序一致。
实现 List 接口的集合主要有:ArrayList、LinkedList、Vector、Stack。
2、List接口中常用方法
List 作为 Collection 集合的子接口,不但继承了 Collection 接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:
public void add(int index, E element) :将指定的元素,添加到该集合中的指定位置上。
public E get(int index) :返回集合中指定位置的元素。
public E remove(int index) :移除列表中指定位置的元素, 返回的是被移除的元素。
public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的更新前的元素。
3、List的子类
3.1 ArrayList集合
java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能为查询数据、遍历数据,所以 ArrayList 是最常用的集合。
它使用动态数组来存储不同数据类型的重复元素。 ArrayList 类维护插入顺序,并且是非线程安全的。 存储在 ArrayList 类中的元素可以被随机访问。实例:
public class Main {
public static void main(String args[]) {
ArrayList<String> list = new ArrayList<String>();
list.add("Ravi");
list.add("Vijay");
list.add("Ravi");
list.add("Ajay");
Iterator itr = list.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
///结果
Ravi
Vijay
Ravi
Ajay
3.2 LinkedList集合
java.util.LinkedList 集合数据存储的结构是链表结构,方便元素添加、删除。
LinkedList 是一个双向链表。它可以存储重复的元素。 它维护插入顺序。 在 LinkedList 中,操作非常快,因为不需要移位。
public class Main {
public static void main(String args[]) {
LinkedList<String> al = new LinkedList<String>();
al.add("111");
al.add("222");
//移除头部
al.removeFirst();
//添加到尾部
al.addLast("333");
Iterator<String> itr = al.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
///结果
222
333
3.3 Vector集合
Vector 使用动态数组来存储数据元素。 它类似于 ArrayList 。 但是,它是同步的,并且包含许多不属于 Collection 框架的方法。
Stack(栈)
栈是 Vector 的子类。 它实现了后进先出的数据结构,即堆栈。
public class Main {
public static void main(String args[]) {
Stack<String> stack = new Stack<String>();
stack.push("aaa");
stack.push("bbb");
stack.pop();
Iterator<String> itr = stack.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}