List接口是一个有序的Conllection,线性列表接口,能够精确的控制每个元素插入的位置,能够通过索引(类似于数组的下标) 来访问List中的元素,第一个元素的索引为0,而且允许有相同的元素,接口存储一组不唯一,有序(插入顺序)的对象。
- 常用的实现类
- ArrayList
- 基于数组实现,是一个动态的数组队列,但它和JAVA中的数组有不一样,它的容量可以自动增长
- 可以存储任意多的对象,但是只能存储对象,不能存储原生数据类型例如int
- LinkedList
- 基于的数据结构是链表,一个双向链表,链表数据结构的特点是每个元素分配的空间不必连续
- 插入和删除元素时速度非常快,但访问元素的速度较慢
- 常见List API语法
//创建对象,LinkedList和ArrayList api⼀样
List list = new ArrayList<>();
//往容器⾥⾯添加对象
list.add("xiaohuang");
//根据索引获取元素
list.get(index);
//更新⼀个元素
list.set(index, “mr.chen”);
//返回⼤⼩
list.size();
//根据索引删除⼀个元素
list.remove(index);
//根据对象删除元素
list.remove("xiaoming");
//清空元素
list.clear();
//是否为空
list.isEmpty();
//LinkedList特有api
//获取第⼀个元素
list.getFirst();
//获取最后⼀个元素
list.getLast();