那个x--比较关键,很容易忽略,导致少删除几个.在集合遍历的时候一般是很少对集合中的元素进行操作的,尤其是add和remove操作- package com.reflect;
- import java.util.ArrayList;
- import java.util.Iterator;
- /*
- * 4、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,
- * 删除其中所有值为"abc"的字符串元素,请用代码实现。
- */
- public class Test4 {
- public static void main(String[] args) {
- ArrayList<String> list = new ArrayList<String>();
- list.add("abc");
- list.add("我要来北京了。。。");
- list.add("abc");
- list.add("abc");
- list.add("abc");
- list.add("我要学云计算。。。");
- list.add("abc");
- list.add("祝黑马越来越好。。。");
-
- Iterator<String> iterator = list.iterator();
- while(iterator.hasNext()){
- if(iterator.next().equals("abc")){
- iterator.remove();
- }
- }
- System.out.println(list);
-
- for(String string: list){
- if(string.equals("abc")){
- list.remove(string);
- }
- }
- System.out.println(list);
-
- //在遍历时,删除元素会对遍历有影响
- for(int i=0; list != null && i<list.size(); i++){
- if(list.get(i).equals("abc")){
- list.remove(i);
- i--;
- }
- }
- System.out.println(list);
-
- }
- }
复制代码 |