遍历ArrayList时如何正确移除一个元素「建议收藏」

遍历ArrayList时如何正确移除一个元素「建议收藏」一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为”abc”的字符串元素,请用代码实现。方法一、for循环遍历很简单,直接上代码:importjava.util.*;publicclassTest1{ publicstaticvoidmain(Stringargs[]){ List<String…

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

一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为”abc”的字符串元素,请用代码实现。

方法一、for循环遍历

很简单,直接上代码:

import java.util.*;
public class Test1{
	public static void main(String args[]) {
		List<String> aList = new ArrayList();
		aList.add("a");
		aList.add("ab");
		aList.add("abc");
		aList.add("abc");
		aList.add("abcr");
		aList.add("abc");
		aList.add("abcf");
		aList.add("abc");
		aList.add("abdc");
		
//      删除过程
//		aList.add("a");
//		aList.add("ab");
//		
//		aList.add("abc");
//		aList.add("abcr");
//		
//		aList.add("abcf");
//		
//		aList.add("abdc");


		for(int i=0;i<aList.size();i++) {
			if(aList.get(i).equals("abc")) {
				System.out.println(i+":"+aList.get(i));
				aList.remove(i);  // 删除后 下标调整 导致漏删
			}
		}
		System.out.println(aList);
			
	}
}

结果:

2:abc
4:abc
5:abc
[a, ab, abc, abcr, abcf, abdc]

方法二、迭代遍历

import java.util.*;
public class Test1{
	public static void main(String args[]) {
		List<String> aList = new ArrayList();
		aList.add("a");
		aList.add("ab");
		aList.add("abc");
		aList.add("abc");
		aList.add("abcr");
		aList.add("abc");
		aList.add("abcf");
		aList.add("abc");
		aList.add("abdc");
		
		
		Iterator<String> iter = aList.iterator();
		while(iter.hasNext()) {
			if(iter.next().equals("abc")) {
				iter.remove();
			}
		}
		System.out.println(aList);
		
		
		
	}
}

结果:

[a, ab, abcr, abcf, abdc]

为了避免漏删的情况,最好使用迭代器的方式遍历删除元素,因为迭代器是根据后一个索引来删除元素的,而不是下标。

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

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

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


相关推荐

  • 转:谷歌离线地图基础[通俗易懂]

    转:谷歌离线地图基础[通俗易懂]一.需要文件gapi3文件夹:存放接口等tilemap文件夹:存放图片gapi.js文件maptool.js文件二.html配置&lt;scripttype="text/javascript"src="gapi.js"&gt;&lt;/script&gt;&lt;scripttype="text/javascript"src="maptool.js"&gt;&lt

    2026年1月31日
    2
  • 查看ubuntu版本号

    查看ubuntu版本号

    2021年9月3日
    61
  • 多线程面试题(值得收藏)「建议收藏」

    多线程面试题(值得收藏)「建议收藏」史上最强多线程面试47题(含答案),建议收藏金九银十快到了,即将进入找工作的高峰期,最新整理的最全多线程并发面试47题和答案总结,希望对想进BAT的同学有帮助,由于篇幅较长,建议收藏后细看~1、并发编程三要素?1)原子性原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。2)可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修…

    2022年6月6日
    30
  • 安装了anaconda 还需要单独安装pycharm吗_为什么anaconda安装不了

    安装了anaconda 还需要单独安装pycharm吗_为什么anaconda安装不了1、安装AnacondaAnaconda官方下载站点下载好直接安装,无脑下一步验证是否安装成功:安装完成之后,从Windows开始菜单,点击AnacondaNavigator菜单项。Navigator首页显示了一些应用,其中有Spyder已经默认安装好了,点击Launch按钮。Sypder是Python的一个简单的集成开发环境。启动Spyder应用后,在左侧输入hello.py文件,如下所示。然后点击Run按钮,运行hello.py…

    2022年8月29日
    17
  • MySQL导入Excel数据

    转载来自:https://www.cnblogs.com/yuwensong/p/4026332.html好了,现在我来介绍一下如何利用phpMyAdmin批量导入Excel内容到MySQL。首先你要知道phpMyAdmin是什么(不知道的这篇文章可以跳过了),我今天用的版本是phpMyAdmin3.2.4,MySQL的版本是5.1.41。1、第一步我们得到了一个excel表,里面有很多需…

    2022年4月5日
    50
  • java定时器「建议收藏」

    java定时器「建议收藏」java定时器

    2022年4月24日
    43

发表回复

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

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