移除集合中元素,注意 集合的size() -1

	List<BipDetection> bipDetections = bipDetectionDao.getInterfaceAuthorization(A, B);
	if (bipDetections!=null&&!bipDetections.isEmpty()) {
		BipDetection bipDetectionTemp = new BipDetection();
		for (BipDetection bipDetection : bipDetections) {
			if ("GETXXXX".equals(bipDetection.getAction())) {
				bipDetectionTemp = bipDetection;
	//	     	bipDetections.remove(bipDetection);//直接移除
				continue;
			}
		}
		bipDetections.remove(bipDetectionTemp);//移除GETXXXX
	}
	return bipDetections;

移除集合中某一个特定元素的时,我们常用的的方式是:list.remove(); 在这里有一个注意的点,list.remove(); 时,list的size() -1,如果在移除元素的同时还执行 list 其他操作 ,比如赋值。这时候 list的最后一个元素的状态没有改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除list集合元素,可以使用以下几种方式: 方式一:使用迭代器Iterator。通过迭代器顺序向下遍历list,如果找到要除的元素,则使用remove方法进行除。例如: ``` List<String> list = new ArrayList<>(); list.add("赵云"); list.add("黄忠"); list.add("马超"); list.add("关羽"); list.add("张飞"); Iterator<String> it = list.iterator(); while(it.hasNext()){ String str = it.next(); if("关羽".equals(str)){ it.remove(); } } System.out.println(list); ``` 方式二:倒序遍历list。通过for循环从最后一个元素开始倒序遍历list,如果找到要除的元素,则使用remove方法进行除,并进行索引的自减操作。例如: ``` List<String> list = new ArrayList<>(); list.add("赵云"); list.add("黄忠"); list.add("马超"); list.add("关羽"); list.add("张飞"); for (int i = list.size() - 1; i >= 0; i--) { if("关羽".equals(list.get(i))){ list.remove(i); } } System.out.println(list); ``` 方式三:正序遍历list。通过for循环从第一个元素开始正序遍历list,如果找到要除的元素,则使用remove方法进行除,并进行索引的自减操作。例如: ``` List<String> list = new ArrayList<>(); list.add("赵云"); list.add("黄忠"); list.add("马超"); list.add("关羽"); list.add("张飞"); for (int i = 0; i < list.size(); i++) { if("关羽".equals(list.get(i))){ list.remove(i); i--; } } System.out.println(list); ``` 方式四:使用Stream流操作。通过使用jdk1.8新增的Stream流操作,可以使用filter方法将不需要除的元素筛选出来,从而得到元素后的list集合。例如: ``` List<String> list = new ArrayList<>(); list.add("赵云"); list.add("黄忠"); list.add("马超"); list.add("关羽"); list.add("张飞"); list = list.stream().filter(str -> !"关羽".equals(str)).collect(Collectors.toList()); System.out.println(list); ``` 以上是几种常用的除list集合元素的方式。根据具体需求,可以选择适合的方式进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [List元素的四种方式](https://blog.csdn.net/qq_58148854/article/details/131596870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值