List一次性删除多个相同记录的技巧

本文主要讲述在Java实验中使用List时遇到的问题,介绍了List的remove和removeAll方法。remove用于移除指定位置元素,传入数字;removeAll用于移除与另一个List集合重复的元素,传入List集合,还给出了两者区别及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要写这个呢,因为今天在做实验的时候遇到同样一个问题,大概的讲,如果只用list.remove(1),那么你将找不到下一个要移除的对象,因为list.size()改变了,就算能找到,最后一个一定报越界异常。
可能这样讲很模糊,但是有遇到相关问题的朋友一定能理解,这里我介绍一下remove和removeall:

  • remove可以用来移除list集合里面第n个位置的数,比如list.remove(5)
  • removeall可以用来移除list集合里面跟list2集合里面重复的数,比如有这么个list2里面add(“a”)再add(“b”),有个list1里面有abc,则执行list1.removeall(list2)后,list1里面只剩下c
  • 以上两者最重要的区别是传入的参数,remove只能传入数字,即要删除的位置,这里要记住list跟数组一样是从0开始算起;removeall只能传入一个list集合,执行的是删除相同。

给个例子:

public class test {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<String> list1 = new ArrayList<String>();
		list1.add("go");
		list1.add("go");
		list1.add("to");
		list1.add("go");
		list1.add("to");
		list1.add("go");
		List<String> list2 = new ArrayList<String>();
		list2.add("go");
		list1.removeAll(list2);
		System.out.println(list1.toString());
	}
}

执行结果:
[to, to]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值