通過迭代器對list集合中的元素進行增刪改操作
阿新 • • 發佈:2022-12-08
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()); //獲取元素並將指標向前移動 }*/ } }