我是靠谱客的博主 清爽眼神,最近开发中收集的这篇文章主要介绍ArrayList一边遍历一边删除?给大家介绍几种方法1、首先是倒序遍历,因为我们删除后面的并不影响前面的2、正序遍历删除,每删一个给下标减一3、使用list的removeIf()方法删除[推荐做法]4、使用Iterator删除,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1、首先是倒序遍历,因为我们删除后面的并不影响前面的
- 2、正序遍历删除,每删一个给下标减一
- 3、使用list的removeIf()方法删除[推荐做法]
- 4、使用Iterator删除
在这里我就不展示错误的方式了。
下面都假设我们要删除ArrayList中模2等于0的数
1、首先是倒序遍历,因为我们删除后面的并不影响前面的
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);
list.add(1);
list.add(6);
list.add(5);
for (int i = list.size() - 1; i >= 0; i--) {
if (list.get(i) % 2 == 0) {
list.remove(i);
}
}
System.out.println(list);
}
}
2、正序遍历删除,每删一个给下标减一
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);
list.add(1);
list.add(6);
list.add(5);
for (int i = 0; i < list.size(); i++) {
if (list.get(i) % 2 == 0) {
list.remove(i);
i = i - 1;
}
}
System.out.println(list);
}
}
3、使用list的removeIf()方法删除[推荐做法]
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);
list.add(1);
list.add(6);
list.add(5);
list.removeIf(i -> i
% 2 == 0);
System.out.println(list);
}
}
4、使用Iterator删除
public class HelloWorld {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(3);
list.add(1);
list.add(6);
list.add(5);
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
if (iterator.next() % 2 == 0) {
iterator.remove();
}
}
System.out.println(list);
}
}
最后
以上就是清爽眼神为你收集整理的ArrayList一边遍历一边删除?给大家介绍几种方法1、首先是倒序遍历,因为我们删除后面的并不影响前面的2、正序遍历删除,每删一个给下标减一3、使用list的removeIf()方法删除[推荐做法]4、使用Iterator删除的全部内容,希望文章能够帮你解决ArrayList一边遍历一边删除?给大家介绍几种方法1、首先是倒序遍历,因为我们删除后面的并不影响前面的2、正序遍历删除,每删一个给下标减一3、使用list的removeIf()方法删除[推荐做法]4、使用Iterator删除所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复