A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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");
                        }
                }
               
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马