抖音资讯

douyinzx

arraylist删除元素的方法(arraylist集合删除对象)

iseeyu2年前 (2024-05-07)抖音资讯150

平时最常用的莫过于ArrayList和HashMap了,面试的时候也是问答的常客。先不去管容量、负载因子什么的,就是简单的使用也会遇到坑。尤其是使用Remove.

经常遇到的一个场景是:遍历list, 然后找到合适条件的给删除掉,比如删除所有的偶数。

@Test
	public void testRemove2(){
	 List<Integer> integers = new ArrayList<>(5);
	 integers.add(1);
	 integers.add(2);
	 integers.add(2);
	 integers.add(4);
	 integers.add(5);
	 for (int i = 0; i < integers.size(); i++) {
	 if (integers.get(i)%2==0){
	 integers.remove(i);
	 }
	 }
	 System.out.println(integers);
	}

看起来好像没问题,加入面试的时候当面问:输出结果是什么?再问真不会报错吗?再问结果是什么?

结果是:

  • 报错
  • 结果是空list
  • 结果是[1, 2, 5]

如果使用foreach是否可以实现刚开始的问题:

@Test
	public void testRemove4(){
		List<Integer> integers = new ArrayList<>(5);
	 integers.add(1);
	 integers.add(2);
	 integers.add(2);
	 integers.add(4);
	 integers.add(5);
	 for (Integer string : integers) {
	 	integers.remove(string);
	 }
	}

结果报错:
java.lang.UnsupportedOperationException

正确的remove做法是:

方法一:

@Test
	public void testRemove9(){
		List<Integer> integers = new ArrayList<>(5);
	 integers.add(1);
	 integers.add(2);
	 integers.add(2);
	 integers.add(4);
	 integers.add(5);
	 Iterator<Integer> iterator = integers.iterator();
	 while (iterator.hasNext()){
	 	Integer next = iterator.next();
	 	if (next%2 == 0){
	 		iterator.remove();
	 	}
	 }
	 System.out.println(integers);
	}

方法二:

@Test
	public void testRemove7(){
		List<Integer> integers = new ArrayList<>(5);
	 integers.add(1);
	 integers.add(2);
	 integers.add(2);
	 integers.add(4);
	 integers.add(5);
	 
	 for(int i= integers.size()-1;i>=0;i--)
	 {
	 	 if (integers.get(i)%2==0){
		 integers.remove(i);
		 }
	 }
	 System.out.println(integers);
	}

 

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/42835.html

相关文章

快手【卡券】小组件使用指南

快手【卡券】小组件使用指南

如何配置【卡券】 手机端: 1、在[我]界面点击[更多功能],点击[卡券],右上角[我是店家] 2、选择想要核销的卡券,输入券码 电脑端: 1、在电脑端登录快手企业服务中心( e.kuaishou.com )点击左边[经营工具中心]-[营销转化中心]-[卡券...

搜狗推广费用|带品牌玩转圣诞营销

搜狗推广费用|带品牌玩转圣诞营销

在圣诞营销战役中,为抢占制胜先机,一些品牌选择搭载更为智能的营销路径,演绎出别具新意的营销玩法。在这个圣诞节,搜狗广告便为海蓝之谜,迪奥等品牌带来圣诞营销锦囊,助品牌“智”取节日黄金流量。 打造搜狗广告新玩法 刷出品牌绝佳存在感   圣诞既是品牌“广撩客”的重要节点,也是品...

微信小游戏落地页类型 | 微信广告投放平台

微信小游戏落地页类型 | 微信广告投放平台

微信小游戏 微信小游戏是基于微信客户端的游戏,它即点即玩,无需下载安装,体验轻便。当使用「微信小游戏」落地页后,用户点击广告自动拉起微信App、并打开微信小游戏实现跳转,可触达更多流量库存。 各流量跳转形态介绍: 1、微信流量版位下,点击广告直接打开微信小游戏 2、腾讯广...

抖音怎么让别人看不到我浏览过(抖音访客记录关闭的方法)

抖音怎么让别人看不到我浏览过(抖音访客记录关闭的方法)

抖音作为当下比较流行的短视频社交软件,某些情况为了自己的隐私考虑需要隐藏访客记录信息。那么,如何设置呢?接下来详细介绍如何操作。   打开手机桌面的抖音软件,点击右下角的“我”。   轻点右上角的三条横杠。 &n...

视频号商业化蓄力爆发前夕,品牌如何把握机会入局?

视频号商业化蓄力爆发前夕,品牌如何把握机会入局?

2022年,视频号商业化全面提速。从内测直播大屏到丰富直播间玩法,视频号在带货直播的基础设施上频频发力。低调试水618,开启超级日等活动,意在重点摸清、测试和扶持商家品牌流量。随着用户使用习惯的逐步养成和视频号生态的完善,12亿流量被反复激发和释放。经典演唱会直播的千万级别...

医美行业疫后恢复投放宝典 | 百度信息流广告

医美行业疫后恢复投放宝典 | 百度信息流广告

一、助力医美行业恢复 随着12月全国各地防控政策放宽人民也逐步复工复产、恢复正常生活 为帮助医美广告主快速复投,了解流量趋势和行业竞争态势 特此整理医美行业疫后复投放宝典 助力医美广告主投放提效、在百度获取更多有效客源! 二、宝典1:疫情恢复流量洞察 维度1:医美行业流量趋势...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片