集合遍历中删除行不行「建议收藏」

集合遍历中删除行不行「建议收藏」集合遍历中删除行不行

大家好,又见面了,我是你们的朋友全栈君。

package 算法;

import java.util.ArrayList;
import java.util.List;

public class 集合遍历中删除行不行 {

    /**
     * 面试中会问到list遍历能不能使用remove方法,下面就是遇到指定的数就删除
     * 
     * @param args
     */
    public static void main(String[] args) {

        // TODO Auto-generated method stub
        List<Integer> list=new ArrayList<Integer>();
        List<A> list2=new ArrayList<A>();
        list2.add(new A(“111”));
        list2.add(new A(“112”));
        list2.add(new A(“113”));
        list2.add(new A(“114”));
        list.add(1);
        list.add(3);
        list.add(5);
        list.add(9);
        for (int i = 0; i < list2.size(); i++) {

            if(i==2){

                list2.remove(i);
            }
            System.out.println(i);
        }
        for (Integer integer : list) {

            if(integer==5){

                list.remove(integer);
            }
            System.out.println(integer);
        }
        //正常
//        for(int i=0;i<list.size();i++){

//            System.out.println(“前:”+list.get(i));
//            if(list.get(i)==5){

//                list.remove(i);
//            }
//            System.out.println(“后:”+list.get(i));
//        }
//        //把i<4,虽然长度都是4但是会报下表越界
//        for(int i=0;i<4;i++){

//            System.out.println(“前:”+list.get(i));
//            if(list.get(i)==5){

//                list.remove(i);
//            }
//            System.out.println(“后:”+list.get(i));
//        }
//        
//    //——–总结上面两个可以得出,for(int i=0;i<list.size();i++)这种写法每次遍历都会重新计算list.size()的长度
//        
//        for(int i=0;i<list.size();i++){

//            System.out.println(“前:”+list.get(i));
//            if(list.get(i)==9){

//                list.remove(i);
//            }
//            System.out.println(“后:”+list.get(i));
//        }
    //——–总结当删除的是最后一个元素时,后面一个输出语句会报错,因为是先删除的,再次get(i)的i还是原先的长度,但是现在变短了。
        
    }
    
}
class A{

    public String aa;

    public A(String aa) {

        super();
        this.aa = aa;
    }
    
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106023.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 雷达探测障碍物是应用了超声波吗_超声波雷达无返回数据

    雷达探测障碍物是应用了超声波吗_超声波雷达无返回数据超声波(Ultrasound,又称超声波雷达)定位,即使用发射探头发出频率大于20KHz的声波和计算飞行时间来探测距离。常用的超声波频率有40KHz、48KHz和58KHz,其中最常用的频率是40KHz。使用超声波定位,一般精度在1cm~3cm之间,探测适用范围在0.2m~5m之间。​超声波指向性强,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在

    2025年10月25日
    3
  • ffmpeg视频解码简明教程

    ffmpeg视频解码简明教程

    2021年9月12日
    84
  • Pycharm控制台乱码问题解决办法之一

    Pycharm控制台乱码问题解决办法之一Ctrl Alt S 打开 settingsEdit 把 GlobalEncodi 和 ProjectEncod 都改为 GBK 注意啦 是 GBK GBK GBK 百度到好多答案说改成 UTF 8 不过好像并不普遍适用 所以如果改成 UTF 8 也不行的话 可以试试这个办法啦 希望能帮到大家啦

    2025年12月15日
    3
  • Oracle修改用户密码过期时间「建议收藏」

    Oracle修改用户密码过期时间「建议收藏」部署的Web应用突然无法登录系统,后台尝试重新启动看能不能恢复,发现启动时在数据库连接池部分报错,怀疑无法连接数据库。使用的是oracle数据库,通过plsql发现也无法连接,从报错可以看出应该是用户密码过期了,因此需要要修改用户密码。通过sysdba身份登录,修改用户密码:alteruserusernameidentifiedbypassword;为了避免密码再次过期,打算设…

    2022年7月28日
    7
  • java链接生成二维码_java实现滑动验证码源代码

    java链接生成二维码_java实现滑动验证码源代码packagecn.itcast.action;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.IOException;importjava.io.OutputStream;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;impo…

    2025年9月17日
    10
  • python 乘法表、打印菱形

    python 乘法表、打印菱形

    2021年11月19日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号