package com.liftsail.qiniurefererdemo.test;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* @Author: liftsail
* @Date: 2022/12/8 11:44
* @Description: 不积跬步无以至千里
*/
public class ListTest {
@SuppressWarnings({"rawtypes", "unchecked"})
public static void main(String[] args) {
List list = new ArrayList();
list.add("a");//Object obj = new String();
list.add("b");
list.add("world");
list.add("c");
list.add("d");
list.add("e");
//1.并发错误
/*Iterator it = list.iterator(); //获取迭代器
while (it.hasNext()) { //判断集合中是否有元素
String str = (String) it.next(); //向下转型
if ("world".equals(str)) {
list.add("java");
//遍历的同时在增加元素,并发修改ConcurrentModificationException
}
}
list.forEach(a -> System.out.println(a));
*/
//2.如果想在遍历的过程中添加元素,可以用ListIterator中的add方法
ListIterator listIterator = list.listIterator();//获取迭代器(List集合特有的)
while (listIterator.hasNext()) {
String str = (String) listIterator.next(); //向下转型
if ("world".equals(str)) {
listIterator.remove();
listIterator.add("java-666");
}
}
System.out.println(listIterator);
list.forEach(a -> System.out.println(a));
//3.迭代器的指针
/*ListIterator li = list.listIterator();//获取迭代器
while (li.hasNext()) {
System.out.println(li.next());//获取元素并将指针向后移动
}
System.out.println("-----------------");
while (li.hasPrevious()) {
System.out.println(li.previous()); //获取元素并将指针向前移动
}*/
}
}
标签:String,迭代,list,System,println,add,增删,listIterator From: https://www.cnblogs.com/liftsail/p/16965832.html