集合概念:集合是储存对象的,长度可变,可以封装不同的对象。
List接口:通常表示一个列表(数组、队列、链表、栈等),有序的。
元素是可以重复的,通过索引就可以精确的操作集合中的元素,List接口的特有方法,都是围绕索引定义的。
List获取元素的方式有两种:一种是迭代,还有一种是遍历+get。
list:特有方法,凡是可以操作角标的方法都是该体系特有的方法
增:add(index,element); addAll(index,Collection);
删:remove(index);
改:set(index,element);
查:get(index); subList(from,to); ListIterator();
ArrayList:是数组结构,长度是可变的,原理是(创建新数组+复制数组),查询速度快,增删较慢,不同步。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑使用Collections.synchronizedList(List i)函数返回一个线程安全的ArrayList类,或者使用Concurrent并发包下对应的集合类。
LinkedList:是基于双向循环链表实现的,是链表结构,不同步的,增删速度快,查询较慢。由于实现了Queue接口,因此也可以用于实现堆栈、队列。