---恢复内容开始---
List接口
它是一个元素存取有序的集合。
它是一个带有索引的集合,通过索引就可以精确的操作集合中的元素。
集合中可以有重复的元素,通过元素的equals方法,来比较是否为重复的元素。
常用子类有:
ArrayList集合和LinkedList集合
常用方法
例子
public static void main(String[] args) { List<String>list = new ArrayList<String>(); list.add("111"); list.add("222"); Iterator<String>it =list.iterator(); while(it.hasNext()) { System.out.println(it.next()); } }
Iterator的并发修改异常
例子
public static void main(String[] args) { List<String>list = new ArrayList<String>(); list.add("111"); list.add("222"); Iterator<String>it =list.iterator(); while(it.hasNext()) { if(it.next().equals("222")) { list.add("333"); } } }
原因
在迭代过程中,使用了集合的方法对元素进行操作。导致迭代器并不知道集合中的变化,容易引发数据的不确定性。
List集合数据存储的常用结构
堆栈 特点 先进后出
队列 特点 先进先出
数组 特点 查找快,增删慢
链表 特点 增删快,查找慢
ArrayList是数组结构,LinkedList是链表结构
public static void main(String[] args) { LinkedList<String>list = new LinkedList<>(); list.addLast("d"); list.addFirst("c"); list.addFirst("b"); list.addFirst("a"); for(String s:list) { System.out.print(s); } System.out.println(); System.out.println(list.isEmpty()); System.out.println(list.pop()); list.clear();//清空集合 System.out.println(list.isEmpty()); }