Java list利用遍历进行删除操作3种方法解析
这篇文章主要介绍了Java list利用遍历进行删除操作3种方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java三种遍历如何进行list的便利删除:
1、for循环:
常见初五写法:(由于下标问题达不到想要效果)
for(int i=0;i<list.size();i++){ if(list.get(i).equals("del")) list.remove(i); }
应该改为:(倒序操作避免下标问题)
int size = list.size(); for(int i=size-1;i>=0;i--){ if(list.get(i).equals("del")) list.remove(i); }
2、增强for循环(foreach循环):
常见错误:(会抛出ConcurrentModificationException)
for(String x:list){ if(x.equals("del")) list.remove(x); }
应改为:
//cowlist为原list CopyOnWriteArrayList<Record> list = new CopyOnWriteArrayList<Record>(cowList); for(String x:list){ if(x.equals("del")) list.remove(x); }
3、iterator遍历:(注意要是用迭代器的remove方法,不能使用list的remove方法)
Iterator<String> it = list.iterator(); while(it.hasNext()){ String x = it.next(); if(x.equals("del")){ it.remove(); } }
最好使用Iterator遍历。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Java集合Set、List、Map的遍历方法
本文实例讲述了Java集合Set.List.Map的遍历方法,分享给大家供大家参考. 具体方法如下: package com.shellway.javase; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.uti
-
Java用list储存,遍历,查询指定信息过程详解
需求说明 实现思路 见代码注释 代码内容 使用list储存,遍历,查询,删除 import java.util.ArrayList; import java.util.List; /** * @auther::9527 * @Description: 第七题 * @program: 多线程 * @create: 2019-08-09 23:39 */ public class Seventh { public static void main(String[] args) { //初始化企鹅信息
-
详解Java中list,set,map的遍历与增强for循环
详解Java中list,set,map的遍历与增强for循环 Java集合类可分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. 关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法.如果只做简单遍历读取,增强for循环确实减轻不少的代码量. 集合概念: 1.作用:用于存放对象 2.相当于一个容器,里面包含着一组对象,其中的每个对象作为集合的一个元素出现 3.jav
-
java使用ArrayList遍历及效率比较实例分析
本文实例讲述了java使用ArrayList遍历及效率比较.分享给大家供大家参考.具体如下: ArrayList arrL = new ArrayList(); ArrayList arrLTmp1 = new ArrayList(); ArrayList arrLTmp2 = new ArrayList(); ArrayList arrLTmp3 = new ArrayList(); ArrayList arrLTmp4 = new ArrayList(); for (int i=0;i<10
-
java中List集合及其遍历详解
1. 首先List<E>集合继承与Collection<E>,是一个接口. ① Collection (集合框架是JDK1.2版本出现的) ② list:是有序的,元素可以重复,以为该集合体系有索引. 经常用到的是实现该接口的ArrayList和LinkedList类 ③ Arraylist: 底层的数据结构使用的是数组结构, 特点: 查询速度很快,但是增删稍慢.线程不同步 LinkedList: 底层使用的是链表数据结构. 特点: 增删速度很快,查询稍慢. Ve
-
java arrayList遍历的四种方法及Java中ArrayList类的用法
java arrayList遍历的四种方法及Java中ArrayList类的用法 package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo { public static void main(String args[]){ List<String> list = new ArrayList<String
-
Java如何在List或Map遍历过程中删除元素
遍历删除List或Map中的元素有很多种方法,当运用不当的时候就会产生问题.下面通过这篇文章来再学习学习吧. 一.List遍历过程中删除元素 使用索引下标遍历的方式 示例:删除列表中的2 public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(2); list.add(3); list.add(
-
java中循环遍历删除List和Set集合中元素的方法(推荐)
今天在做项目时,需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常: ConcurrentModificationException 为了以后不忘记,使用烂笔头把它记录如下: 错误代码的写法,也就是报出上面异常的写法: Set<CheckWork> set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks(); for(CheckWork checkWork : set){ if(checkWor
-
Java中List集合的遍历实例详解
一.对List的遍历有三种方式 List<String> list = new ArrayList<String>(); list.add("testone"); list.add("testtwo"); ... 第一种: for(Iterator<String> it = list.iterator(); it.hasNext(); ) { .... } 这种方式在循环执行过程中会进行数据锁定, 性能稍差, 同
-
Java中ArrayList和LinkedList的遍历与性能分析
前言 通过本文你可以了解List的五种遍历方式及各自性能和foreach及Iterator的实现,加深对ArrayList和LinkedList实现的了解.下面来一起看看吧. 一.List的五种遍历方式 1.for each循环 List<Integer> list = new ArrayList<Integer>(); for (Integer j : list) { // use j } 2.显示调用集合迭代器 List<Integer> list = new Ar
随机推荐
- 详解Docker私有仓库最简便的搭建方法
- mysql5.7.17安装使用图文教程
- js对象的构造和继承实现代码
- windows server 2008 服务器安全设置初级配置
- PHP实现多服务器session共享之NFS共享的方法
- 实现百度关键字搜索的批处理
- Android支付宝支付开发实例
- Java 获取指定日期的实现方法总结
- 日期函数扩展类Ver0.1.1
- Asp.net FileUpload上传文件夹并检测所有子文件的实现代码
- Android6.0指纹识别开发实例详解
- 哈佛成功金句-25则
- iOS实现动态自适应标签
- PHPExcel中文帮助手册|PHPExcel使用方法(分享)
- Android侧滑菜单控件DrawerLayout使用详解
- VSCode配置react开发环境的步骤
- python实现Floyd算法
- centos yum php 7.x 无需删除升级的方法
- Java实现文件和base64流的相互转换功能示例
- Java仿Windows记事本源代码分享