首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >集合遍历中删除行不行「建议收藏」

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

作者头像
全栈程序员站长
发布2022-08-09 15:40:37
发布2022-08-09 15:40:37
5590
举报

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

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.cn/106023.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档