-
2022-08-05 13:47:24
Java中for循环遍历List的两种方法
常用的方法:
List<Person> people = ...; for (int 1=0;i<people.size();i++){ people.get(i).setEat("吃饭"); }
相当于:
List<Person> people = ...; for (Person person : people){ person.setEat("吃饭"); }
更多相关内容 -
详解Java中list,set,map的遍历与增强for循环
2020-08-31 11:17:43主要介绍了详解Java中list,set,map的遍历与增强for循环的相关资料,需要的朋友可以参考下 -
JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历
2021-01-26 13:41:26JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。 1、for循环遍历list for(int i=0;i<list.size();i++){ if(list.get(i).equals("del")) list.remove(i); } ...JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。
1、for循环遍历listfor(int i=0;i<list.size();i++){ if(list.get(i).equals("del")) list.remove(i); }
这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。
2、增强for循环
for(String x:list){ if(x.equals("del")) list.remove(x); }
这种方式的问题在于,删除元素后继续循环会报错误信息ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常抛出。但是删除完毕马上使用break跳出,则不会触发报错。
3、iterator遍历
Iterator<String> it = list.iterator(); while(it.hasNext()){ String x = it.next(); if(x.equals("del")){ it.remove(); } }
这种方式可以正常的循环及删除。但要注意的是,使用iterator的remove方法,如果用list的remove方法同样会报上面提到的ConcurrentModificationException错误。
总结:
(1)循环删除list中特定一个元素的,可以使用三种方式中的任意一种,但在使用中要注意上面分析的各个问题。
(2)循环删除list中多个元素的,应该使用迭代器iterator方式。 -
Java 增强for循环(遍历集合和数组)
2022-06-21 18:35:15增强for循环的使用(遍历集合和数组)增强for循环:简化数组和collection集合的遍历
.实现iterator接口的类,允许其对象成为增强型for语句的目标
.它时jdk5之后出现的,其内部原理是一个iterator迭代器
增强for循环格式:
for(元素数据类型 变量名: 数组或者collection集合){
//在此处使用变量即可,该变量就是元素
}
范例:
int arr[]={1,2,3,,4,5,6};
for(int i : arr){
System.out.println(i);package collection集合; import java.util.ArrayList; import java.util.List; public class 增强For循环 { /* 增强for循环:简化数组和collection集合的遍历 .实现iterator接口的类,允许其对象成为增强型for语句的目标 .它时jdk5之后出现的,其内部原理是一个iterator迭代器 增强for循环格式: for(元素数据类型 变量名: 数组或者collection集合){ //在此处使用变量即可,该变量就是元素 } 范例: int arr[]={1,2,3,,4,5,6}; for(int i : arr){ System.out.println(i); } * */ public static void main(String[] args) { // TODO 自动生成的方法存根 //arr int arr[]={1,2,3,4,5,6}; for(int i : arr){ System.out.println(i); } System.out.println("---------------------------"); //string String s [] = {"hello","world","java"}; for(String i : s){ System.out.println(i); } System.out.println("---------------------------"); //list List<String> list = new ArrayList<String>(); list.add("hello"); list.add("world"); list.add("java"); for(String i : list){ System.out.println(i); } } }
-
Jdk8都7岁了,你还在用for循环遍历list吗?3分钟学习一下Stream吧
2021-01-20 02:56:16Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 这种风格将要处理的元素... -
JAVA中循环遍历list有三种方式
2021-02-12 10:19:45转自:https://blog.csdn.net/changjizhi1212/article/details/81036509JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。1、for循环遍历listfor(int i=;iif(list.get(i)...转自:https://blog.csdn.net/changjizhi1212/article/details/81036509
JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。
1、for循环遍历list
for(int i=;i
if(list.get(i).equals("del"))
list.remove(i);
}
这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。
2、增强for循环
for(String x:list){
if(x.equals("del"))
list.remove(x);
}
这种方式的问题在于,删除元素后继续循环会报错误信息ConcurrentModificationException,因为元素在使用的时候发生了并发的修改,导致异常抛出。但是删除完毕马上使用break跳出,则不会触发报错。
3、iterator遍历
Iterator it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}
这种方式可以正常的循环及删除。但要注意的是,使用iterator的remove方法,如果用list的remove方法同样会报上面提到的ConcurrentModificationException错误。
总结:
(1)循环删除list中特定一个元素的,可以使用三种方式中的任意一种,但在使用中要注意上面分析的各个问题。
(2)循环删除list中多个元素的,应该使用迭代器iterator方式。
(3) 当使用ArrayList时,我们可以使用iterator实现遍历删除;而当我们使用CopyOnWriteArrayList时,我们直接使用增强型for循环遍历删除即可,此时使用iterator遍历删除反而会出现问题。
java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
java中循环的不同终止方式
1.break:直接强行跳出当前循环,不再执行剩余代码.但在多重循环的情况下,若break在内层循环中,则仅仅终止了内层循环,外循环照常执行. 2.continue:仅仅终止此次循环. 3.retur ...
Java中创建线程主要有三种方式
一.继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此把run()方法称为执行体. (2)创建Thread子类的实 ...
Java中循环删除list中元素的方法总结
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后在今天使用的时候发现报错了,然后去科普了一下,发现这是一个误区.下面我们来一起看一下. Java中循环遍 ...
JAVA中循环删除list中元素的方法总结【转】
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...
JAVA中循环删除list中元素
文章来源: https://www.cnblogs.com/pcheng/p/5336903.html JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环) ...
JAVA中循环删除list中元素的方法总结(同上篇)
印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接跳至文末 ...
java中循环删除list中元素的方法
重点哈 印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区.下面就来讲一讲..伸手党可直接 ...
Java中Map遍历的四种方案
在Java中如何遍历Map对象 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map map = new HashM ...
随机推荐
ok6410的madplay配置
二.移植嵌入式播放器 madplay madplay 播放器程序主要依赖于如下库: zlib zlib-1.1.4.tar.gz 提供数据压缩用的函式库 libid3tag libid3tag- ...
C++重难点知识
1.顶层const和底层const const int a=10; int b=5; const int *p1=&a; int (*const)p2=&b; p1是顶层const,表 ...
centos6.5vpn搭建
centos6.5vpn搭建整个搭建流程,服务端,客户端安装及测试. 达到的效果: 在安装vpn客户端的机器可通过vpn(virtual private network)专用线路(vpn主配置文件中定 ...
getResourceAsStream和getResource的用法
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大家最经常用的,就是用JAVA的File类,如要取得 D:/test.txt文件,就会这样用File file ...
java单例设计模式总结及举例
* 设计模式:前人总结出来的经验,被后人直接拿来使用. * 单例设计模式:一个类只允许有一个对象,将这个对象作为一个全局的访问点,提供出去供大家使用. * 分析: * 1.用户只能有一个对象 * 2. ...
Linux基础命令---iptables-save
iptables-save iptables-save指令可以将内核中当前的iptables配置导出到标准输出.通过IO重定向功能来定向输出到文件. 此命令的适用范围:RedHat.RHEL.Ubun ...
ECC校验
ECC的全称是 Error Checking and Correction or Error correction Coding,是一种用于差错检测和修正的算法.NAND闪存在生产和使用中都会产生坏块 ...
Anaconda本地安装python库
很多时候我们需要自己手动安装一些库,例如因为网络原因,或者下载源没有这个包. 以Windows环境为例,无论是pip安装还是anaconda安装,最终的包都是安装在,工作目录/Lib/site-pac ...
渐变(Gradients)
渐变是一种可以在两个或两个以上颜色之间实现平稳过渡的效果,分为线性渐变(Linear Gradients)和径向渐变(Radial Gradients). 在演示之前,先创建一个div,并添加基础样式 ...
-
Java Collection List三种遍历方式,增强for循环,索引for循环,迭代器;
2022-03-07 22:40:40import java.util.*; public class ListDemo1 { public static void main(String[] args) { List<Student> list = new ArrayList<Student>(); Student stu1 = new Student("林黛玉", 18); Student... -
使用for循环遍历java中的列表
2021-03-07 23:28:04这是一种方式:private void processWordsInSentence(List sentence) {Iterator it = sentence.iterator();if (it.hasNext()) {String previous = it.next();while(it.hasNext()) {String current ... -
java中循环遍历删除List和Set集合中元素的方法(推荐)
2020-09-01 01:57:24下面小编就为大家带来一篇java中循环遍历删除List和Set集合中元素的方法(推荐)。小编觉得挺不错的,在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
for循环遍历List的两种方法
2021-08-21 18:10:07Java中for循环遍历List的两种方法 常用的方法: List<Person> people = ...; for (int 1=0;i<people.size();i++){ people.get(i).setEat("吃饭"); } 相当于: List<Person> people = ...; ... -
Java集合的遍历方式,Iterator,foreach:增强for循环
2022-06-04 11:10:24Java集合的遍历方式,Iterator,foreach:增强for循环,Exception in thread "main" java.util.NoSuchElementException,Exception in thread "main" java.util.ConcurrentModificationException -
三种for循环遍历
2021-03-07 23:28:32import java.util.ArrayList;import java.util.Iterator;...public class For{public static void main(String[]args) {//new一个集合对象List alList=new ArrayList();alList.add(1);//自动转成Integeral... -
Java list三种遍历方法性能比较
2020-12-22 16:27:26从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码例如以下: package ... -
有关for循环遍历list的小技巧和注意点及其原理
2021-11-03 11:43:46这个函数能够让我们方便的在遍历list的时候同时保存list元素的值和下标。 li = ['aaa', 'bbb', 456, 7] # 直接使用print(enumerate(li))无法直接查看其值,要先转换为list才可以 print(list(enumerate(li))) for ... -
浅谈普通for循环遍历LinkedList弊端
2020-08-31 15:25:57下面小编就为大家带来一篇浅谈普通for循环遍历LinkedList弊端。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
Java中数组和集合的for循环遍历
2022-04-04 05:23:45一篇文章看懂Java数组和三种集合如何使用迭代 -
Java中List集合的三种遍历实现 迭代器 普通for循环 增强for循环 使用时如何选择
2022-04-08 21:19:28遍历实现1.迭代器遍历2.普通for循环遍历2.增强for遍历 给出了如何选择遍历方式的些许建议 -
java使用各种for遍历list,set,map集合的方式
2022-07-29 11:33:16java集合遍历 -
Java for循环对集合的遍历
2021-02-12 15:09:19java集合类的使用可以说是...下面对各种类型的集合的遍历做一些总结,关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法。如果只做简单遍历读取... -
Java普通循环遍历 与 增强for循环遍历
2022-03-18 12:01:10import java.util.List; public class Add_FOR { public static void main(String[] args) { String[] arr={"hello","你好","你好不好","你很好"}; for (int i=0;i<arr.length;i++){ System.out.println(arr... -
java 多线程循环遍历List 跟普通循环对比
2021-02-26 18:50:11import java.util....import java.util.List;import static java.lang.Thread.sleep;public class Test3 {public static void main(String[] args) throws Exception {long start = System.currentTimeMillis... -
java遍历数组与集合之增强for循环
2022-07-28 18:46:20for增强for循环和普通for循环的区别普通for循环可以没有遍历的目标,增强for循环。缺点不能在这个增强循环里动态删除集合里面的内容,获取下标等。使用场景增强for循环主要就是为了方便遍历。... -
For循环遍历List案例
2022-07-07 16:41:45For循环遍历List案例 -
Java中使用增强for循环遍历List, remove或add元素出现异常的总结
2019-08-28 22:50:02Java从JDK 1.5开始引入foreach循环, 在遍历集合跟数组, 十分的方便, 也叫作增强for; foreach的语法格式如下图所示 其遍历List的代码如下图所示: 输出的结果为 可以从代码看跟输出结果看出来, 使用foreach... -
Java: 增强for循环针对list的时候,是严格按照list的顺序依次遍历的吗?
2021-03-05 23:34:11是的首先写一个测试代码:`private void for_Test(){List list =new ArrayList<>();list.add(1);list.add(2);list.add(3);for(int i :list){System.out.println(i);}}`编译成字节码:由于主要是看迭代顺序所以... -
java 集合List循环遍历的几种方法
2020-09-22 18:02:12import java.util.*; public class ListTest { public static void main(String[] args) { List<String> list =new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); /** * 第一...