package com.itheima;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class Test4 {
public static void main(String[] args) {
/*4、一个ArrayList对象aList中存有若干个字符串元素,
现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,
请用代码实现*/
ArrayList<String> aList = new ArrayList<String>();
aList.add("abc");
aList.add("abc");
aList.add("abc");
aList.add("abc");
aList.add("abc");
aList.add("abc");
aList.add("abc");
System.out.println(aList);
aList.removeAll(aList);
System.out.println(aList);
}
//高级for循环,在遍历过程中使用集合的方法修改集合的长度,会报错ConcurrentModificationException
//使用普通for循环,也不行,删不全
//使用迭代器,其中有remove() 方法,,如果要添加元素,则使用ListIterator 中的add
//注意:使用迭代器遍历集合时,想要删除元素,使用Iterator remove() 和 ListIterator remove() 都可以 ,添加元素的话,只能使用ListIterator 中的add()
public static void remove(ArrayList<String> aList){
// Iterator<String> it = aList.iterator();
// while(it.hasNext()){
// if(it.next().equals("abc")){
// it.remove();
// }
// }
ListIterator<String> it = aList.listIterator();
while(it.hasNext()){
String s = it.next();
if(s.equals("abc")){
// it.remove();
it.add("aaa");
}
}
}
}
|
|