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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.ArrayList;

public class Test3 {

        /**
         * @param args
         *            题目:
         *            一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"
         *            的字符串元素,请用代码实现。
         */
        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("我要学云计算。。。");
                list.add("祝黑马越来越好。。。");

                System.out.println("list=" + list);
                for (int x = 0; x < list.size(); x++) {

                        if ("abc".equals(list.get(x))) {

                                System.out.println("--------删除了:" + list.remove(x));
                                System.out.println("删除后:" + list);

                                x--;
                        }
                }

        }
}

1111未命名.jpg (246.95 KB, 下载次数: 43)

1111未命名.jpg

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

3 个回复

正序浏览
那个x--比较关键,很容易忽略,导致少删除几个.在集合遍历的时候一般是很少对集合中的元素进行操作的,尤其是add和remove操作
  1. package com.reflect;

  2. import java.util.ArrayList;
  3. import java.util.Iterator;

  4. /*
  5. * 4、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,
  6. *                 删除其中所有值为"abc"的字符串元素,请用代码实现。
  7. */
  8. public class Test4 {

  9.         public static void main(String[] args) {
  10.                 ArrayList<String> list = new ArrayList<String>();
  11.         list.add("abc");
  12.         list.add("我要来北京了。。。");
  13.         list.add("abc");
  14.         list.add("abc");
  15.         list.add("abc");
  16.         list.add("我要学云计算。。。");
  17.         list.add("abc");
  18.         list.add("祝黑马越来越好。。。");
  19.                
  20.         Iterator<String> iterator = list.iterator();
  21.         while(iterator.hasNext()){
  22.                 if(iterator.next().equals("abc")){
  23.                         iterator.remove();
  24.                 }
  25.         }
  26.        System.out.println(list);
  27.         
  28.         for(String string: list){
  29.                 if(string.equals("abc")){
  30.                         list.remove(string);
  31.                 }
  32.         }
  33.         System.out.println(list);
  34.         
  35.         //在遍历时,删除元素会对遍历有影响
  36.         for(int i=0; list != null && i<list.size(); i++){
  37.                 if(list.get(i).equals("abc")){
  38.                         list.remove(i);
  39.                         i--;
  40.                 }
  41.         }
  42.         System.out.println(list);
  43.         
  44.         }
  45. }
复制代码
回复 使用道具 举报
给力给力
回复 使用道具 举报
{:soso_e120:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马