package MONA.demo03_list;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo02 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
//获取到迭代器
ListIterator it = list.listIterator();
System.out.println("向后遍历");
//如果还有下一个元素
while (it.hasNext()){
System.out.println(it.next());
}
System.out.println("向前遍历");
while (it.hasPrevious()){
System.out.println(it.previous());
}
}
}
List使用for循环遍历
package MONA.demo03_list;
import java.util.ArrayList;
import java.util.List;
/**
* 使用普通for循环
*/
public class Demo03 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
for(Object o :list){
System.out.println(o);
}
System.out.println("-------------------------------");
for (int i = 0; i <list.size(); i++) {
System.out.println(list.get(i));
}
}
}
迭代器并发修改异常
package MONA.demo03_list;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* 迭代器并发修改异常
*/
public class Demo04 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
//使用迭代器迭代元素时,再对集合进行操作会发生异常
//解决:使用迭代器进行操作
//ConcurrentModificationException 并发修改异常
ListIterator it = list.listIterator();
while(it.hasNext()){
Object o = it.next();
//System.out.println("o ="+o);
//在元素aaa后面添加ccc
if(o.equals("aaa")){
//list.add(1,"ccc");
//使用迭代器进行添加
it.add("ccc");
}
}
System.out.println(list);
}
}
迭代器遍历逻辑
package MONA.demo03_list;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Demo04 {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
//获取到迭代器
ListIterator it = list.listIterator();
//it.next()指向只会一直向下,调用一次就移动一下
// System.out.println("获取到下一个元素:"+it.next());
// System.out.println("获取到下一个元素:"+it.next());
// System.out.println("获取到下一个元素:"+it.next());
// System.out.println("获取到下一个元素:"+it.next());
// System.out.println("获取到下一个元素:"+it.next());
// System.out.println("获取到下一个元素:"+it.next());
System.out.println("--------------------------");
// System.out.println("获取到下一个元素:"+it.next());
// System.out.println("获取到上一个元素:"+it.previous());
System.out.println("向后遍历");
//如果还有下一个元素
while (it.hasNext()){
System.out.println(it.next());
}
System.out.println("向前遍历");
while (it.hasPrevious()){
System.out.println(it.previous());
}
}
}
使用迭代器倒叙输出
package MONA.demo03_list;
import java.util.*;
public class T {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
// //倒叙输出
//方式一:
// ListIterator it = list.listIterator();
//
// //如果还有下一个元素
// while (it.hasNext()){
// it.next();
// }
// while (it.hasPrevious()){
// System.out.println(it.previous());
// }
//方式二:先反转集合
Collections.reverse(list);
System.out.println(list);
ListIterator it = list.listIterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}