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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/**
*
*/
package com.zhang3;

import java.util.ArrayList;
/**
* 2、 一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,
*
*         删除其中所有值为"abc"的字符串元素,请用代码实现。
*
*/
public class Demo3 {

        public static void main(String[] args){
               
                ArrayList <String>aList=new ArrayList<String>();
               
                aList.add("abc");
                aList.add("abc");
                aList.add("hello");
                aList.add("world");
                aList.add("java");
                aList.add("abc");
                aList.add("abc");
       
               
//               
//                for(String str:aList){
//       
//                }
       

       
                for(int i=0;i<aList.size();i++){
               
                        String str=aList.get(i);
                       
                        if(str.equals("abc"))
                        {       
                                aList.remove(i);
                               
                        }
                       
               
                }

               
               
       
               
               
                for(int i=0;i<aList.size();i++){
                       
                        System.out.println(aList.get(i));
                       
                       
                }
               
               
               
        }               
        }




如果2个相同元素放在相邻的位置就只能删除一个
谁能告诉这是为什么
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端

5 个回复

倒序浏览
已解决 因为ArryList 里面是动态数组  可在删除完一个之后防止第二数跳过检验  可以使变量1
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
18055199038 发表于 2017-5-13 18:02
已解决 因为ArryList 里面是动态数组  可在删除完一个之后防止第二数跳过检验  可以使变量1
...

删除时自减一
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
回复 使用道具 举报
传说中的大帅比 发表于 2017-5-14 12:29
索引减1就行

索引减1?哥们你好好看看
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
因为删除过程中数组的位置移动了,你需要将索引也移动。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马