首先是List集合test2的创建和元素的写入:
Listtest2 = new ArrayList<>(); test2.add("1"); test2.add("2"); test2.add("3");
注意,要用多态的方式创建List集合。
方法一.Iteator迭代器
代码:
Iteratorite = test.iterator(); while(ite.hasNext()) { String s = ite.next(); System.out.println(s); }
(1)首先创建一个迭代器ite,迭代器依附于具体的集合而存在,使用iterator()方法获取:
Iteratorite = test.iterator();
(2).hasNext()方法:检测迭代指针后方是否还有元素
(3).next()方法:获取当前迭代地址后方值
※值得注意的是,使用Iterator进行迭代遍历时不能对集合内的元素做出添加或者删除的修改 *** 作!!!否则会报错“并发修改异常”。与之相反的,ListIterator可以做到这一点,下面介绍。
方法二.ListIterator迭代器
列表迭代器ListIterator功能更加强大:允许延任意方向遍历列表,在迭代器件也允许修改列表,并获取列表中迭代器的当前位置。
代码:
ListIteratorlistite = test2.listIterator(); while(listite.hasNext()) //正向遍历 { String s = listite.next(); System.out.println(s); } while(listite.hasPrevious()) //反向遍历 { String s = listite.previous(); System.out.println(s); }
ListIterator迭代器的方法与Iterator基本一致,重点在add()添加方法在这里被允许了:
//在指定集合元素后面加上一个元素 while(listite.hasNext()) { String s = listite.next(); if(s.equals("2")) { listite.add("114514"); } } System.out.println(test2);
如果这里使用Iterator创建的ite进行元素的添加和删除,会报错。其报错原因的追溯需要查看源码,在此处不做深究。
方法三.普通for循环
代码:
for(int i=0; i<=test.size()-1; i++) { System.out.println(test.get(i)); //get(i):返回第i号位置的元素 }
(1).size()方法返回集合长度(元素个数)。
(2).get(Index i)方法返回指定第i位置上的元素。
方法四.增强for循环
代码:
for(String s: test2) { System.out.println(s); }
(1)形式:for(遍历的元素的数据类型 变量名i: 遍历集合名) {}
(2)增强for循环内部原理是Iterator,所以在遍历时不能修改内部元素。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)