①List接口的主要方法:
public interface List extends Collection{
//... other Collection methods
public abstract Object get(int i); //根据索引取得元素
public abstract Object set(int i, Object obj); //在指定位置(索引)插入新元素
public abstract void add(int i, Object obj); //在指定位置插入新的元素
public abstract Object remove(int i); //删除指定位置(索引)处的元素
public abstract int indexOf(Object obj); //取得指定对象的最开始的索引位置
public abstract int lastIndexOf(Object obj); //取得指定对象的最后的索引位置
//取得从位置i到j的所有元素(包含i但不包含j位置的元素),返回一个新的集合对象。
public abstract List subList(int i, int j);
②ArrayList
List<Integer> a = new ArrayList<Integer>();
a.add("");
a.add(0, "") ;// 在第一个位置添加
a.remove("AAA");
a.remove(0) ; // 指定删除的位置
a.isEmpty();//集合是否为空
a.contains("AAA");//字符串是否存在
List<String> b = a.subList(2,4) ;// 字符串截取2-3
a.indexOf("CCC");//字符串的位置
③LinkedList-链表
a.getFirst();//获得第一个元素
a.getLast();//获得最后一个元素
a.addFirst("");//在链表开头增加元素
a.addLast("");//在链表结尾增加元素
a.removeFirst()//删除链表的第一个元素,并返回
a.removeLast();//删除链表的最后一个元素,返回,若a空报异常
a.poll();//获取集合首部元素,并删除该元素,若a空返回null
a.peek();//获取集合首部元素,但不删除该元素,若a空返回NULL
a.element();//获取集合首部元素,但不删除该元素,若a空报异常
④Iterator-迭代器-单向输出
Iterator<String> iter = a.iterator(); // 实例化Iterator接口
while (iter.hasNext()) { // 判断是否有下一个值
iter.next(); // 取出 }
Iterator对象只能完成一次迭代,如果要多次迭代,须生成新的Iterator对象。
⑤ListIterator-双向迭代输出-Iterator子接口
public interface ListIterator<E> extends Iterator<E>;
ListIterator<String> iter = a.listIterator();
//元素索引均为个人理解
a.nextIndex();//返回下一个元素的索引号,迭代之前为0
a.previousIndex();//返回上一个元素的索引号,迭代之前为-1
// 由前向后输出
while (iter.hasNext()) { //判断是否有下一个值
iter.next();//取出当前元素--执行一次游标+1}
//由后向前输出
while (iter.hasPrevious()) { // 判断是否有上一个值
iter.previous();//取出当前元素--执行一次游标-1}
a.remove();//移除当前元素
a.add("");//增加
a.set();//替换元素
for (ListIterator li = a.listIterator();li.hasNext() ; )
{Object obj = li.next();if (obj.equals("")){li.set("");}
⑥Foreach
for (T element : a) { // sysou(element);
⑦Vector--有序同ArrayList
⑧Enumeration--没有删除方法
a.hasMoreElements();//判断是否有下一个值
a.nextElement();//取出当前元素
public interface List extends Collection{
//... other Collection methods
public abstract Object get(int i); //根据索引取得元素
public abstract Object set(int i, Object obj); //在指定位置(索引)插入新元素
public abstract void add(int i, Object obj); //在指定位置插入新的元素
public abstract Object remove(int i); //删除指定位置(索引)处的元素
public abstract int indexOf(Object obj); //取得指定对象的最开始的索引位置
public abstract int lastIndexOf(Object obj); //取得指定对象的最后的索引位置
//取得从位置i到j的所有元素(包含i但不包含j位置的元素),返回一个新的集合对象。
public abstract List subList(int i, int j);
②ArrayList
List<Integer> a = new ArrayList<Integer>();
a.add("");
a.add(0, "") ;// 在第一个位置添加
a.remove("AAA");
a.remove(0) ; // 指定删除的位置
a.isEmpty();//集合是否为空
a.contains("AAA");//字符串是否存在
List<String> b = a.subList(2,4) ;// 字符串截取2-3
a.indexOf("CCC");//字符串的位置
③LinkedList-链表
a.getFirst();//获得第一个元素
a.getLast();//获得最后一个元素
a.addFirst("");//在链表开头增加元素
a.addLast("");//在链表结尾增加元素
a.removeFirst()//删除链表的第一个元素,并返回
a.removeLast();//删除链表的最后一个元素,返回,若a空报异常
a.poll();//获取集合首部元素,并删除该元素,若a空返回null
a.peek();//获取集合首部元素,但不删除该元素,若a空返回NULL
a.element();//获取集合首部元素,但不删除该元素,若a空报异常
④Iterator-迭代器-单向输出
Iterator<String> iter = a.iterator(); // 实例化Iterator接口
while (iter.hasNext()) { // 判断是否有下一个值
iter.next(); // 取出 }
Iterator对象只能完成一次迭代,如果要多次迭代,须生成新的Iterator对象。
⑤ListIterator-双向迭代输出-Iterator子接口
public interface ListIterator<E> extends Iterator<E>;
ListIterator<String> iter = a.listIterator();
//元素索引均为个人理解
a.nextIndex();//返回下一个元素的索引号,迭代之前为0
a.previousIndex();//返回上一个元素的索引号,迭代之前为-1
// 由前向后输出
while (iter.hasNext()) { //判断是否有下一个值
iter.next();//取出当前元素--执行一次游标+1}
//由后向前输出
while (iter.hasPrevious()) { // 判断是否有上一个值
iter.previous();//取出当前元素--执行一次游标-1}
a.remove();//移除当前元素
a.add("");//增加
a.set();//替换元素
for (ListIterator li = a.listIterator();li.hasNext() ; )
{Object obj = li.next();if (obj.equals("")){li.set("");}
⑥Foreach
for (T element : a) { // sysou(element);
⑦Vector--有序同ArrayList
⑧Enumeration--没有删除方法
a.hasMoreElements();//判断是否有下一个值
a.nextElement();//取出当前元素