list数组遍历时能不能使用remove()方法,要注意什么
面试的时候经常会被问到,list遍历时能不能使用remove()方法?
能不能使用呢?话说存在即合理,能使用时肯定可以的,不过要做点修改,看下面直接使用remove()的结果。
List<String> list=new ArrayList<String>();list.add("1");list.add("2");list.add("3");list.add("4");for(int i=0;i<list.size();i++){if(i==1)list.remove(1);System.out.println(list.get(i));}
输出结果是:
1
3
4
看结果好像没什么错,但是如果是if(i==3),那么就是删除最后一个元素了,那后面的输出语句就会报下标越界了:
因为删掉一个元素后后面的元素下标都会减一,因此实际使用的时候注意到这一点就行了。面试的时候跟面试官说清楚这一点就行了。
list数组遍历时能不能使用remove()方法,要注意什么相关推荐
- Python_遍历时删除的处理说明
遍历时,建议不能直接进行remove删除,会跳过某些元素 实例: a=[1,2,3,4,5] for i in a: a.remove(i) print a a=[1,2,3,4,5] for i i ...
- java数组遍历 删除remove
package com.b;import java.util.ArrayList;//数组遍历删除,添加 public class Core2 {private String name;private ...
- JAVA中List遍历时如何正确remove元素
当我们需要对遍历中的list进行remove时,很可能会有个坑在等着我们. 先看一段代码: String str1 = new String("abcde"); String st ...
- java list 遍历 remove_JAVA中LISt遍历时如何remove元素?
import java.util.*; public class object { public static void main(String[] args) { String str1 = new ...
- List遍历时删除与迭代器(Iterator)解惑
文章目录 ArrayList 遍历时删除方法 for循环向后遍历的陷阱 增强型for循环(foreach)遇到的问题 使用迭代器进行遍历同时修改操作 iterator调用remove()方法为什么要先 ...
- java .foreach数组遍历_foreach遍历ArrayList和数组
遍历ArrayList的方式有迭代器,foreach循环,get(i)等方式.其中迭代器和get方法都有具体的代码可以看到.foreach循环是怎么实现的呢? 下面通过反编译class的方式来看看JA ...
- 数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()...
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...
- 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
文章目录 一.二维数组 1.二维数组声明及初始化 2.二维数组遍历 3.二维数组排序 二.完整代码示例 一.二维数组 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 , 数组中的每 ...
- js数组遍历、对象遍历、字符串遍历
2019独角兽企业重金招聘Python工程师标准>>> 数组遍历 for --使用变量将数组长度缓存起来,在数组较长时性能优化效果明显 for(var i=0,len=arr.len ...
- 数组反向遍历ios_iOS中数组遍历的方法及比较
数组遍历是编码中很常见的一种需求,我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 因为ios是兼容C语言的,所以c语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的系 ...
最新文章
- linux select 多路复用机制
- 2014 ecb,_it’s_easy_as_123(修改bmp文件头) 攻防世界;
- OpenStack构架知识梳理
- Jenkins file一行代码部署.NET程序到K8S
- 为什么我饿了么产品总监不干,却要从事自由职业?
- mysql-聚合函数
- 你的 App 在 iOS 13 上被卡死了吗?
- glog学习(二):glog主要接口和类分析
- 解决microsoft visual c++ build tools安装包丢失或损坏
- 关于软件设计文档编写
- anaconda报错Collecting package metadata (current_repodata.json): failed
- Python学习笔记-2017.5.4thon学习笔记-2017.5.10
- 深度学习入门(二)训练并使用Keras模型
- 2013校园招聘阶段小结
- 【安装windows10 RTX3090 tensorflow的开发环境】
- 2017 携程 笔试编程题 1
- 讯飞语音转文字 PHP demo
- 泛型中的 T、E、K、V,还记得嘛?
- service层调用service层的方法,并切换数据库调用不同数据库获取数据
- Oracle计算两个日期的月份