本帖最后由 追逐 于 2014-3-21 19:26 编辑
import java.util.ArrayList;
import java.util.ListIterator;
/*
List
特有方法、凡是可以操作角标的方法都是该体系特有的方法
1、增加
add(index,element); 在角标为index的位置上插入element元素
addAll(index,Collection); 在角标位置为index的位置上插入一组元素
2、删除
remove(index); 删除角标位置为index上的元素
3、修改
set(index,element); 修改角标位置为index上的元素
4、查找
get(index); 查找角标位置为index上的元素
subList(from,to); 查找角标位置从from到to但并不包含to的一组元素
listIterator();
List集合特有的迭代器,ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException(并发修改异常)
所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的。
只能对元素进行判断,取出,删除的操作,
如果想要其他操作如添加。修改等,就需要使用其子接口,ListIterator;
该接口只能通过list集合的listIterator方法获取。
*/
- class ListDemo
- {
- public static void main(String[] args)
- {
- //list();
- list_1();
- }
-
- //List的简答应用
- public static void list()
- {
- //创建一个集合容器,使用Collection的子类ArrayList
- ArrayList s = new ArrayList();
- //添加元素
- s.add("java01");
- s.add("java02");
- s.add("java03");
- p("添加前:" + s);
- //增加元素
- s.add(2,"java05"); //在角标位为2的位置插入元素
- p("添加后:" + s);
-
- s.remove(3); //删除角标位为3的元素
- p("删除后:" + s);
- s.set(2, "java08"); //把角标位为2的元素修改成java08
- p("修改后:" + s);
- p("查找的单个元素是:" + s.get(2)); //查找角标位为2的数组上的元素
- p("查找到的多个元素:" + s.subList(0,3)); //以为此方法查找包含头,不包含尾。所以要查找到到所有元素。必须要比元素个数大1
-
- }
- //ListIterator的简单应用
- public static void list_1()
- {
- ArrayList s = new ArrayList();
- s.add("java01");
- s.add("java02");
- s.add("java03");
- ListIterator li = s.listIterator();
- //使用List特有的迭代器ListIterator
- for(; li.hasNext(); )
- {
- Object obj = li.next(); //子类对象指向父类引用
- if(obj.equals("java03"))
- {
- li.set("java---3"); //对迭代器中的元素进行修改
- li.add("java-----3"); //对迭代器中的元素进行添加
- }
- }
- p("从头往后遍历:" + s);
- for(; li.hasPrevious(); )
- {
- p(li.previous()); //从后往前遍历
- }
-
- }
- public static void p(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码
|