关于arraylist删除的问题

package com.utils.collection;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class DeleteList {/*** @param args*/public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>();for (int i = 0; i < 10; i++) {list.add(i);}System.out.println("size =" + list.size());System.out.println(list.toString());delete5(list);//       list.clear();
//      list.removeAll(list);System.out.println("after delete, size is " + list.size());System.out.println(list.toString());}/*** 正序遍历删除* 结果:只删除了一半* 原因:每删除一个,size变小,要删除的下一个前移以为,下次只能是隔一个再删除* @param list*/public static void delete1(List<Integer> list){for (int i=0; i<list.size(); i++){System.out.println(list.toString());System.out.println("要删除第" + i + "个");list.remove(i);System.out.println("now size = " +list.size());}}/*** 倒序遍历删除* 结果:全部删除* 原因:每次都删最后一个* @param list*/public static void delete2(List<Integer> list){for (int i=list.size()-1; i>=0; i--){System.out.println(list.toString());System.out.println("要删除第" + i + "个");list.remove(i);System.out.println("now size = " +list.size());}}/*** java.util.ConcurrentModificationException* iterator遍历时不能进行删除,但是可以修改* @param list*/public static void delete3(List<Integer> list){for (Integer obj : list) {list.remove(obj);}}/*** java.util.ConcurrentModificationException* iterator遍历时不能进行删除,但是可以修改* @param list*/public static void delete4(List<Integer> list){for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext();) {Integer obj = (Integer) iterator.next();list.remove(obj);}}/*** 使用iterator自带的遍历和删除方式,正常* @param list*/public static void delete5(List<Integer> list){for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext();) {iterator.next();iterator.remove();}}
}

ArrayList删除的问题相关推荐

  1. arraylist删除指定元素_面试官:谈谈常用的Arraylist和Linkedlist的区别

    Arraylist:底层是基于动态数组,根据下表随机访问数组元素的效率高,向数组尾部添加元素的效率高:但是,删除数组中的数据以及向数组中间添加数据效率低,因为需要移动数组. 例如最坏的情况是删除第一个 ...

  2. ArrayList删除某元素的几种方法

    ArrayList删除某元素的几种方法 环境: 开发工具:IDEA jdk:1.8 一.正序遍历: List<Integer> list = new ArrayList();list.ad ...

  3. java arraylist 删除回车符_2种Java删除ArrayList中的重复元素的方法

    这篇文章将给出两种从ArrayList中删除重复元素的方法,分别是使用HashSet和LinkedHashSet. ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素, ...

  4. arraylist删除指定元素_【追凶】ArrayList使用增强for遍历删除元素异常ConcurrentModification...

    在工作中我们经常需要在遍历集合的时候删除元素,一开始我也以为只要在增强for循环中remove元素就可以了,现实给了我一个巴掌那就是ConcurrentModificationException. 首 ...

  5. arraylist删除指定元素_揭开ArrayList的外衣看本质

    揭开ArrayList的外衣,看本质​mp.weixin.qq.com 源码还是比较多的,安安静静的读完确实不易,所以我们读源码要有着重点. ArrayList的继承和实现关系 ArrayList的成 ...

  6. java arraylist删除元素_java集合类ArrayList操作之删除remove某些元素的案例分析

    在java开发中,会经常出现需要删除java ArrayList的某些元素的场景,比如从在线用户列表的ArrayList中删除离线用户的ArrayList,但有的人会出现循环在线用户ArrayList ...

  7. java里arraylist删除节点方法_Java之——删除ArrayList中的反复元素的2种方法

    ArrayList是Java中最经常使用的集合类型之中的一个.它同意灵活加入多个null元素,反复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除反复元 ...

  8. [ArrayList删除元素] 你需要了解的ArrayList如何安全的删除重复元素/ list去重

    学习笔记使用 ArrayList特点:动态数组结构,元素有序,可重复的一个集合 import java.util.ArrayList; import java.util.Iterator; impor ...

  9. ArrayList删除元素的细则

      删除ArrayList数组中某个元素,通常会使用for循环匹配目标元素完成删除操作. public void remove(List<String> list, String str) ...

最新文章

  1. Python3算法基础练习:编程100例( 21~ 25)
  2. #135. 二维树状数组 3:区间修改,区间查询
  3. Socket 实现聊天功能
  4. python打开文件_喜大普奔 | 如何在Win10下利用Python打开grib文件
  5. 实验一 软件工程准备
  6. AngularJS开发指南5:AngularJS表达式详解
  7. 产品原型设计5:移动App原型设计神器 - POP(Prototyping on Paper)
  8. 大数据分析有哪些步骤
  9. 机器人编程java面试题,7届国赛java试题 4: 机器人塔
  10. Windows网络编程获得本机IP地址
  11. 网页设计与制作(HTML+CSS)
  12. 怎么将计算机工具栏时间去除,电脑任务栏不显示日期只显示时间的详细处理方法...
  13. 16进制是否能整除 求余的运算
  14. bugku(Crypto)---ook
  15. 收入为什么增加记入贷方而不是借方--完美解答
  16. UE4.虚幻4.简单介绍和学习视频推荐
  17. windows中合并磁盘
  18. 汇编语言中的[...]和(...)
  19. 无线通信模块定点传输-点对点的具体传输应用
  20. 操作系统学习笔记——第二章 进程的描述与控制(二)

热门文章

  1. 顶尖中文大学计算机专业课程体系
  2. Java泛型(类、接口、方法)及通配符
  3. 安装配置tomcat
  4. 基于LAMP的cacti安装和配置问题处理(一)
  5. C# 简单日志文本输出
  6. MVC 从客户端中检测到有潜在危险的 Request.Form 值
  7. HTML CSS——margin和padding的学习
  8. python: 基本的日期与时间转换
  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十八):kafka0.10.1 内置性能测试API用法示例...
  10. 面试题10-二进制中1的个数