黑马程序员技术交流社区

标题: 删除ArrayList集合中的所有为"abc"的字符串 [打印本页]

作者: 天雨云龙    时间: 2016-9-16 21:44
标题: 删除ArrayList集合中的所有为"abc"的字符串
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");
                        }
                }
               
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2