java集合循环删除

简介: java集合循环删除,java list集合操作,java循环。分享牛,分享牛原创。java集合删除方法。

java集合循环删除,java list集合操作,java循环。分享牛,分享牛原创。java集合删除方法。
2.6.1.第一种方式

    list.add("1");  
            list.add("2");  
            list.add("3");  
            list.add("4");  
            list.add("5");  
            for (int i = 0; i < list.size(); i++) {  
                    list.remove(i);  
                    System.out.println("remove "+list);
            }  
            System.out.println("test1 : " + list); 

2.6.2.输出结果
remove [2, 3, 4, 5]
remove [2, 4, 5]
remove [2, 4]
test1 : [2, 4]
分享牛,分享牛原创
上面的图也可以看出,因为我们是根据i的长度跟list.size()判断的,因为list.size()一直变小,所以i>list.size()的时候for中的代码块是不会执行的,因为不满足条件,所以最终数组最终不会被删除完。 如果remove中的索引大于数组的长度的时候会报错。看一下源代码一目了然吧
public E remove(int index) {
rangeCheck(index);
}
private void rangeCheck(int index) {
if (index >= size)
throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}
2.6.3.第二种方式

    ArrayList<String> list = new ArrayList<String>();  
        list.add("1");  
        list.add("2");  
        list.add("3");  
        list.add("4");  
        list.add("5");  
        for (String l : list) {  
              list.remove(l);  

        }  
        System.out.println("test2 : " + list); 

2.6.4.输出结果
Exception in thread “main” java.util.ConcurrentModificationException
at java.util.ArrayListItr.checkForComodification(UnknownSource)atjava.util.ArrayListItr.next(Unknown Source)
at com.shareniu.TestList.main(TestList.java:14)
2.6.5.第三种方式

ArrayList<String> list = new ArrayList<String>();  
        list.add("1");  
        list.add("2");  
        list.add("3");  
        list.add("4");  
        list.add("5");  
        Iterator<String> iter = list.iterator(); 
        while (iter.hasNext()) {  
            String s = iter.next();  
                iter.remove();  

        }  
        System.out.println("test3 : " + list);

2.6.6.输出结果
test3 : []
2.6.7.比较第二种跟第三种的差距
第二种采用的 list.remove(l);
第三种采用的 iter.remove();
两个方法不一样导致list.remove(l); 有参数的报错为什么?
这个暂时没发现原因,发现原因的话,最终补上去。
分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519)

相关文章
|
22天前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
24 0
|
27天前
|
算法 Java 数据处理
Java集合框架的优缺点
Java集合框架的优缺点
|
30天前
|
网络协议 算法 Java
|
5天前
|
存储 Java 编译器
Java集合丛林:深入了解集合框架的秘密
Java集合丛林:深入了解集合框架的秘密
11 0
Java集合丛林:深入了解集合框架的秘密
|
8天前
|
Java BI
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
Java 获取周,月,年日期集合(统计图)
|
19天前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
28 1
|
24天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
88 3
|
27天前
|
缓存 NoSQL Java
java中复杂业务情况下的集合操作(增减集合同步数据)
java中复杂业务情况下的集合操作(增减集合同步数据)
26 0
|
27天前
|
存储 Java
java中的集合
java中的集合
9 2
|
28天前
|
Java
java使用循环案例—
java使用循环案例—
9 0