List 与 collection 关系
List 和set 是 collection 的子接口
List 接口(元素有序且可重复, 动态数组):
List 是有序的集合, 也称为序列, 此接口的用户可以滴列表中的每个元素插入位置进行精确的控制。 用户可以根据元素的整数索引(在列表中的位置) 访问元素, 并搜索列表中的元素
与set 不同, 列表通常允许有重复的元素
常用的方法:
list.add 不指定index , 则在尾部追加。 指定index 则将原属添加到指定位置
remove(index), 返回remove 的元素值
list.get(2) :获取某个元素的值
list.set(“3”,“jsp”) // 替换列表中指定位置的元素值, 返回值是以前指定位置的元素, (替换掉的旧值)
如果index 的值大于列表的长度, 则会报数组下表越界异常
ListIterator it = list.listIterator();
List 接口实现常用类:
1.ArrayList 类的概述
1. 底层数据结构是Object数组, 查询块增删慢
2. 线程不安全, 效率高
ArrayList 案例
存储字符串并遍历
存储自定义对象并遍历
2. LinkedList 类的概述:
底层是数组结构的链表, 查询慢, 增删快
线程不安全, 效率高
3. Vector list接口古老实现类
线程安全, 效率低
list 常用方法
remove 两种方法