我是靠谱客的博主 唠叨胡萝卜,这篇文章主要介绍Java for循环删除集合中某些元素,现在分享给大家,希望可以做个参考。

Java for循环有四种方法删除集中某些元素:
1、简单for循环删除(这种方法不报错,但是结果不正确

for(int i=0;i<list.size();i++){
	if(list.get(i).contains("aaa")){
		list.remove(i);
	}
}

结果不正确原因是:list中被删除一个元素以后,list中元素的索引会改变

2、增强for循环 forEarch()(这种方法会报错 Concurrent Modification Exception)

list.forEarch(item->{
	if(item.contains("aaa")){
		list.remove(item);
	}
})

foreach不支持对集合中的元素进行增删操作,但是支持修改

3、通过迭代器(Iterator)删除(推荐使用该方法

Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
	String str = iterator.next();
	if(str.contains("aaa")){
		iterator.remove();
	}
}

注意:使用iterator迭代器的时候不可以对集合做维护和新增操作,如果要添加和更改元素,建议使用ListIterator

4、Java 8提供的一个方法removeIf()(推荐使用该方法)

list.removeIf(item->item.contains("aaa));

最后:Arrays.asList()方法生成的列表是无法直接删除里面的元素的,需要在外面套一层
new Arraylist()

String[] strs = {"a","ab","abc"};
List<String> list = new ArrayList<>(Arrays.asList(strs));

或者先转换成流再收集成list

String[] strs = {"a","ab","abc"};
 List<String> list1 = Arrays.asList(strs).stream().collect(Collectors.toList());
 List<String> list2 = Arrays.strem(strs).collect(Collectors.toList());

最后

以上就是唠叨胡萝卜最近收集整理的关于Java for循环删除集合中某些元素的全部内容,更多相关Java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(133)

评论列表共有 0 条评论

立即
投稿
返回
顶部