java遍历list删除数据,遍历删除List中的元素方法
red hat enterprise linux 8到图书
129.9元
(需用券)
去购买 >
1.通过增强的for循环删除符合条件的多个元素
/**
* 使用增强的for循环
* 在循环过程中从List中删除元素以后,继续循环List时会报ConcurrentModificationException
*/
public void listRemove() {
List students = this.getStudents();
for (Student stu : students) {
if (stu.getId() == 2)
students.remove(stu);
}
}
2.通过增强的for循环删除符合条件的一个元素
/**
* 像这种使用增强的for循环对List进行遍历删除,但删除之后马上就跳出的也不会出现异常
*/
public void listRemoveBreak() {
List students = this.getStudents();
for (Student stu : students) {
if (stu.getId() == 2) {
students.remove(stu);
break;
}
}
}
3.通过普通的for删除删除符合条件的多个元素
/**
* 这种遍历有可能会遗漏某个元素,因为删除元素后List的size在
* 变化,元素的索引也在变化,比如你循环到第2个元素的时候你把它删了,
* 接下来你去访问第3个元素,实际上访问到的是原先的第4个元素。当访问的元素
* 索引超过了当前的List的size后还会出现数组越界的异常,当然这里不会出现这种异常,
* 因为这里每遍历一次都重新拿了一次当前List的size。
*/
public void listRemove2() {
List students = this.getStudents();
for (int i=0; i
if (students.get(i).getId()%3 == 0) {
Student student = students.get(i);
students.remove(student);
}
}
}
4.通过Iterator进行遍历删除符合条件的多个元素
/**
* 使用Iterator的方式也可以顺利删除和遍历
*/
public void iteratorRemove() {
List students = this.getStudents();
System.out.println(students);
Iterator stuIter = students.iterator();
while (stuIter.hasNext()) {
Student student = stuIter.next();
if (student.getId() % 2 == 0)
//这里要使用Iterator的remove方法移除当前对象,如果使用List的remove方法,则同样会出现ConcurrentModificationException
stuIter.remove();
}
System.out.println(students);
}
原文链接:https://segmentfault.com/a/1190000012894119
实用现代javascript模块化系列
68.08元
(需用券)
去购买 >
java遍历list删除数据,遍历删除List中的元素方法相关推荐
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除)...
ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过滤器的使用和批量删除数据(伪删除和直接删除) 原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(18)-过 ...
- hive删除数据、删除分区、删除库表
hive删除数据.删除分区.删除库表 -- 删除库 drop database if exists db_name; -- 强制删除库 drop database if exists db_name ...
- python mysql删除数据_python-mysql删除和更新数据
删除数据 import codecs import MySQLdb def connect_mysql(): db_config = { 'host': '192.168.48.128', 'port ...
- MySQL 删除数据 批量删除(大量)数据
在删除数据的时候根据不同的场景使用不同的方法,比如说删除表中部分数据.删除表的结构.删除所有记录并重置自增ID.批量删除大量数据等,可以使用delete.truncate.drop等语句. 一.方法分 ...
- 【java】自动写入数据到文件夹中
Java自动写入数据到文件夹中 package p1; //*********Found********** import java.io.*; import java.util.Vector;pub ...
- java mysbatis select_java相关:详解Mybatis中的select方法
java相关:详解Mybatis中的select方法 发布于 2020-7-3| 复制链接 摘记: selectById方法根据id,查询记录 ```java public void updateRe ...
- java控制器删除数据_javaWeb删除一条及多条数据
一.编写dao //删除根据ID @Delete("delete from product where id=#{id}") public void delete(Integer ...
- 2007数据透视表如何删除_删除数据透视表标题中的总和
2007数据透视表如何删除 When you're building a pivot table, if you add fields to the Values area, Excel automa ...
- php中复选框删除数据_checkbox 删除,checkbox_PHP教程
选项学号姓名< /th>性别电话 在创建sc.php 数据库数据: -- phpMyAdmin SQL Dump -- version 2.11.6 -- http://www.phpmy ...
最新文章
- keras Regressor 回归
- Entity Framework中IQueryable, IEnumerable, IList的区别
- Webview离线功能(优先cache缓存+cache缓存管理)
- 使用之location和rewrite用法
- 关闭共享的DOS命令
- 判断数字在字符串中的位置 详解(C++)
- 林子雨《大数据技术原理与应用》第五讲——NoSQL数据库
- 【转载】微信小程序中引入iconfont阿里矢量图库
- 《现代控制工程基础》复习笔记
- 一个算法面试题的5种不同解法
- 解决手机WiFi(电脑热点)一直正在获取IP地址或无法访问互联网【与网上其他方法不同】
- 基于php工程项目管理系统——计算机毕业设计
- 【杭研大咖说】Istio进入1.7版本,Service Mesh 落地还有什么障碍?
- python中for c in s是什么意思_以下程序s=3for c in Python:s=s+2print(s)的输出结果是:()...
- Go语言基础之网络编程
- 蒲公英linux客户端登录提示密码错误的解决方法
- hibernate之SessionFactory和Session
- js中substring()、substr() 、slice()的用法
- 线性代数之向量、矩阵、行列式、列向量的计算
- Linux并发与同步专题 (4) Mutex互斥量
热门文章
- 学计算机 数学日记,数学日记,Mathematics Diary,音标,读音,翻译,英文例句,英语词典...
- 三年级学生写数学用计算机算,三年级学生数学日记10篇
- Linux连接MySQL
- C/C++编程:CGI与fastCGI
- 老板没钱了,服务器如何缩容?
- Linux惊群效应详解
- 用于退出access的宏命令是_access2007 宏_access创建宏_退出access的宏命令(2)
- 【安卓】1.修改按钮样式之圆角按钮+按钮图标(保姆级图文+附示例+api例程)
- 和刘备相关的人(三)
- i love java怎么写编程_专属于程序员的浪漫-Java输出动态闪图iloveyou