Java集合遍历时删除

    public static void main(String[] args){
	List<Integer> list = new ArrayList<Integer>();
	list.add(1);
	list.add(2);
	list.add(3);
	list.add(4);
	list.add(5);

	Iterator<Integer> interator = list.iterator();
	while(interator.hasNext()){
		Integer i = interator.next();
		if(i==3){
			interator.remove();
		}
		System.out.println(i);
	}
	System.out.println(Arrays.toString(list.toArray()));

}

  

Java集合遍历时删除,布布扣,bubuko.com

时间: 2024-12-22 10:36:40

Java集合遍历时删除的相关文章

java 集合遍历时删除元素

本文探讨集合在遍历时删除其中元素的一些注意事项,代码如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 import java.util.ArrayList; import java.util.Iterator; import java

java集合遍历删除指定元素异常分析总结

在使用集合的过程中,我们经常会有遍历集合元素,删除指定的元素的需求,而对于这种需求我们往往使用会犯些小错误,导致程序抛异常或者与预期结果不对,本人很早之前就遇到过这个坑,当时没注意总结,结果前段时间又遇到了这个问题,因此,总结下遍历集合的同时如何删除集合中指定的元素: 1.错误场景复原 public class ListRemoveTest { public static void main(String[] args) { List<User> users = new ArrayList&l

Java集合遍历性能

数据在内存中主要有两种存储方式: 1.顺序存储,Random Access(Direct Access) 这种方式,相邻的数据元素存放于相邻的内存地址中,整块内存地址是连续的,可以根据元素的位置直接计算出内存地址,直接进行读取.读取一个特定位置元素的平均时间复杂度为O(1).正常来说,只有基于数组实现的集合,才有这种特性.Java中以ArrayList为代表. 2.链式存储,Sequential Access: 这种方式,每一个数据元素,在内存中都不要求处于相邻的位置,每个数据元素包含他的下一个

STL容器遍历时删除元素

STL容器遍历时在循环体内删除元素最容易出错了,根本原因都是因为迭代器有效性问题,在此记下通用删除方法,该方法适用于所有容器: 1 std::vector<int> myvec; 2 3 std::vector<int>::iterator it = myvec.begin(); 4 while( it != myvec.end()) 5 { 6 it = myvec.erase(it); 7 } 容器list有个比较另类的删除方法,如下代码所示: std::list<int

list遍历时删除元素

正如我们前面所知道. 在我们依靠遍历删除ArrayList时总是出现一些神奇的现象.比如 ArrayList<integer> arraylist = new ArrayList<integer>(); arraylist.add(1); arraylist.add(1); arraylist.add(2); arraylist.add(3); arraylist.add(1); 我们遍历并删除其中的1 for(int i = 0:i < arraylist.size();i

python list遍历时删除元素

python list遍历时候删除还真需要注意下,今天帮同学处理数据,竟然傻逼了. 需求: 除了第一列,给每列加一个序号如:"1:0","2:0","3:20100307",然后删除冒号后为0的数据. 推荐做法: arrays = [ ['5001', '0', '0', '20100307', '20150109', '2', '3', '75', '0', '0', '114', '13', '2', '0', '0'], ['10001',

List遍历时删除遇到的问题

这周在开发中遇到了一个以前没遇到的小Bug,在这里记录下来. List集合,我们平时都经常使用.但是,我在遍历List集合时,调用了List集合的remove方法来删除集合中的元素,简单的代码结构是这样: for(String x:list){   if(x.equals("del"))     list.remove(x); } 但是,就是类似这样一个简单的小程序,在执行时,遇到了如下的异常信息: Exception in thread "main" java.u

java集合遍历的几种方式总结及比较

集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); } Map遍历方式: 1.通过获取所有的key按照key来遍历 //Set<Integer> set = map.keySet(); //得到所有key的集合 for (Integer in : map.keySet()) { String str = map.get(in);//得到每个key多对用v

List集合遍历时修改元素出现并发修改异常总结

什么是并发修改异常: 当我们在遍历实现了collection接口与iterator接口的集合时(List.Set.Map), 我们可以通过遍历索引也可以通过迭代器进行遍历.在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象.在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们调用迭代器对象的remove方法是没问题的,但是当我们调用集合自带的remove方法时,就会产生ConcurrentModificationException 并发修改异常.也就是说,当我