您的位置:首页 > 职场人生

《黑马程序员》 list集合的几种迭代方式

2014-04-14 16:47 211 查看
public class ElementIteratorFashionCount {

/**
* 元素迭代的几种方式练习 以list集合为例
*/
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("www");
list.add(".");
list.add("baidu");
list.add(".");
list.add("com");
System.out.println(list); // 我们有的时候并不需要只是仅仅的输出集合中的内容的操作

// 这是jdk1.5之后的新的功能
for (String str : list) {
// 不使用这个方法是因为这里只能对集合进行遍历。而我们想取出遍历到的某一个元素
// 进行操作这种方式是无法实现我们想要的功能的
System.out.println("方式A:" + str);
}

// Iterator它可以返回迭代到的元素
// Iterator可以对List和Set集合中的元素进行迭代
Iterator<String> itea = list.iterator();
while (itea.hasNext()) {
Object ob = itea.next();
// 我们可以在迭代集合的过程中调用iterator的remove方法将元素从集合中移除
// itea.remove(); // 这里只是移除了元素在集合中的引用 。但是它还是在被Object使用着的
System.out.println("方式B:" + ob);
}

// 我们上面使用了itea.remove移除了对象所以下面就迭代不到了
// 国外习惯采用这种方式
for (Iterator<String> ite = list.iterator(); ite.hasNext();) {
Object obj = ite.next();
System.out.println("方式C:" + obj);
}

// 第四种迭代方式
Object[] objs = list.toArray();
for (Object obj : objs) {
System.out.println("方式D:" + obj);
}

//listIterator的练习
//它可以完成在迭代过程对集合的增加和设置的操作
//它只能对list集合进行迭代
ListIterator<String> llite=list.listIterator();
while(llite.hasNext()){
Object obj=llite.next();
System.out.println("正向迭代:"+obj);
}
//对 list集合的反向迭代
while(llite.hasPrevious()){
Object obj=llite.previous();
System.out.println("反向迭代:"+obj);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息