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

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

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

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三极管驱动继电器电路

    三极管驱动继电器电路    继电器线圈需要流过较大的电流(约50mA)才能使继电器吸合,一般的集成电路不能提供这样大的电流,因此必须进行扩流,即驱动。图1所示为用NPN型三极管驱动继电器的电路图,图中阴影部分为继电器电路,继电器线圈作为集电极负载而接到集电极和正电源之间。当输入为0V时,三极管截止,继电器线圈无电流流过,则继电器释放(OFF);相反,当输入为+VCC时,三极管饱和,继电器线圈有相当的电流流过,…

    2022年6月24日
    26
  • mysql日期格式化 yyyymmdd_mysql中时间日期格式化

    mysql日期格式化 yyyymmdd_mysql中时间日期格式化这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:DATE_FORMAT(FROM_UNIXTIME(‘1997-10-0422:23:00′),’%Y/%m/%d’)mysql>SELECTsomethingFROMtableWHERETO_DAYS(NOW())-TO_DAYS(date_col)<=30;DAYO…

    2022年5月29日
    133
  • C语言assert函数(isspace函数)

    断言assert函数,C语言assert函数完全攻略对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲,断言就是对某种假设条件进行检查。在C语言中,断言被定义为宏的形式(assert(expression)),而不是函数,其原型定义在&lt;assert.h&gt;文件中。其中,assert将通过检查表达式expression的值来决定是否需要终止执行程序。也就是…

    2022年4月12日
    49
  • 通过因果图法来写测试用例的步骤_通过因果图写测试用例的步骤

    通过因果图法来写测试用例的步骤_通过因果图写测试用例的步骤一、应用场合在一个界面中,有多个控件,测试的时候要考虑控件的组合关系,不同的控件组合会产生不同的输出结果的组合,为了弄清什么样的输入组合会产生什么样的输出组合,使用因果图法。二、因果图核心1、因——原因,输入条件2、果——结果,输出结果使用图形的方式,分析软件输入和输出的对应关系三、图形符号1、基本图形表示输入和输出的对应关系(1)恒等(=)…

    2022年8月14日
    7
  • 谷歌图片识别在线_图像识别库

    谷歌图片识别在线_图像识别库 一、准备模型在这里,我们利用已经训练好的Googlenet进行物体图像的识别,进入Googlenet的GitHub地址,进入models文件夹,选择Googlenet点击Googlenet的模型下载地址下载该模型到电脑中。模型结构在这里,我们利用之前讲到的网络模型绘制网站画出Googlenet…

    2022年8月14日
    5
  • 大数据建模流程之数据处理[通俗易懂]

    大数据建模流程之数据处理[通俗易懂]原文链接数据是建模的基础,也是研究事物发展规律的材料。数据本身的可信度和处理的方式将直接决定模型的天花板在何处。一个太过杂乱的数据,无论用多么精炼的模型都无法解决数据的本质问题,也就造成了模型的效果不理想的效果。这也是我们目前所要攻克的壁垒。但是,目前我们市场对的数据或者科研的数据并不是完全杂乱无章的,基本都是有规律可循的,因此,用模型算法去进行科学的分析,可以主观情绪对决策的影响。所以数据是非常重要的一部分。那么,接下来我们就详细说一下数据的处理与分析。一.数据的基本特征当看到数据的时候,首要做的并

    2022年6月8日
    43

发表回复

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

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