包装类 与 简单集合框架(三)

2014-11-24 10:33:35 · 作者: · 浏览: 2
col);
//调用Conllection的iterator方法,创建迭代器对象。

Iterator it = col.iterator();

while (it.hasNext())
System.out.println(it.next());
it.remove();
System.out.println(col);

/*
* System.out.println(it.next()); System.out.println(it.next());
* System.out.println(it.next()); System.out.println(it.next());
*/

}

}

List集合接口 继承了Collection。仍为抽象接口
特点: 有序的,元素带有索引(即含有角标)。
主要方法:
/**
* List的主要方法
* 1. 增
* boolean add(object);
* void add(int index,object);
* boolean add(int index,Collection coll);
*
* 2. 删
* void clear();
* E remove(int index);//删除指定位置的元素,返回删除的元素。
* 3. 修改
* E set(int index,object)//返回 被替换的元素。
*4. 获取
* E get(int index)//返回指定位置的元素。
* int indexOf(obj)//返回该对象第一次出现的索引。如果没有,返回-1.
* int lastIndexOf(object)//返回该对象最后一次出现的索引。如果没有,返回-1.
* List subList(fromIndex,toIndex)//返回从fromIndex(包含)到toIndex(不包含)之间的部分视图
*/
[java]
package List;

import java.util.ArrayList;
import java.util.List;

public class ListDemo {
public static void main(String[] args) {
List li = new ArrayList();
show(li);

}

public static void show(List li) {
li.add("one");
li.add("two");
li.add("three");
li.add("four");
System.out.println(li);
//增加元素
// li.add(2, "hello");
//删除元素
// li.remove(2);
//修改
// System.out.println(li.set(3, "world!"));
//获取
System.out.println(li.get(2));
}


}
ListIterator 迭代器类。
获取和Iterator 类似
先创建一个集合类对象。
ArrayList list = new ListArrayList();
获取该类的迭代器对象
ListIterator listIte = list.listItertor();
允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置,所以该迭代器对象是同步安全的。
如 如下代码:
[java]
public class ListDemo2 {

/**
* @param args
*/
public static void main(String[] args) {
//创建集合
ArrayList li = new ArrayList();
//根据list的iterator方法获取迭代器对象
li.add("one");
li.add("two");
li.add("three");
li.add(4);
ListIterator list = li.listIterator();
while(list.hasNext()){
Object obj = list.next();
if(obj.equals("two"))
list.add("nine");
else
System.out.println(obj);
}
System.out.println(li);

/*Iterator it = li.iterator();
// show(li);
li.add("one");
li.add("two");
li.add("three");
li.add(4);
while(it.hasNext()){
Object obj = it.next();
if(obj.equals("two"))
li.add("nine"); Iterator 同步问题导致抛出异常。解决办法用ListIterator的对象。
else
System.out.println(it.next());

}*/

}

public static void show(ArrayList li) {
li.add("one");
li.add("two");
li.add("three");
li.add(4);
Iterator it = li.iterator();
while (it.hasNext()) {
System.out.println("list : " + it.next());

}
for (int i = 0; i < li.size(); i++) {
System.out.println(li.get(i));
}
}
}