集合常用的3种遍历方式
1 迭代器 Iterator
运行结果
说明上面例子中for和while不能使用同一个iterator对象,因为在while循环中iterator已经返回最后一个元素,指针指向的下一个元素为空了,即hasNext()返回值为false,不能用该迭代器的hasNext()作为for循环的判断条件。
2 转换为Object[]进行遍历
运行结果
3 使用增强for(foreach)实现遍历
运行结果
`注意·
增强for有个缺点,如果集合或者数组为null,会报空指针异常(NullPointerException),在调用增强for时最好先做判断。通过反编译可以看到增强for是用iterator的for循环实现的,是iterator的替代,iterator也有这种空指针异常的问题。
4说明
运行结果,集合元素内容不变
*4.2 并行修改异常ConcurrentModificationException
4.2.1 迭代器和foreach(增强for)遍历的循环中,不能出现集合对象本身调用方法更改集合内容,否则运行会报错 java.util.ConcurrentModificationException(并修改异常)
原因是--迭代器和foreach都是依赖集合而存在的,如果集合更改了,迭代器和增强for都不知道,所以就报并行修改异常。
运行结果
4.2.2 解决办法
A 使用普通for循环,在循环中根据判断集合对内容进行修改
B 使用迭代器对集合内容进行修改,Iterator接口中没有该方法,它的子类ListIterator接口中提供add()
详情请参考: https://www.jianshu.com/p/94b12cceb6c7 中(二、3.3)
4.3 一个集合对象的迭代器循环中多次使用next(),会出现java.util.NoSuchElementException异常。
运行结果
4.4 迭代器的remove()能删除next()返回的元素,这也算是更改了集合的内容,不能用元素的值在进行迭代进行解释,遗留
运行结果
两个数组怎么合并到一起
两个数组可以通过多种方式进行合并。常用的方法包括:连接、使用循环遍历添加元素等。使用连接方式合并数组 这是最简单且效率较高的方法之一。多数编程语言都提供了直接连接两个数组的功能。以Python为例,可以使用"+"运算符或者`extend`方法来实现。Python示例:python array1 = [1, 2, 3]array2 = [...
PHP 如何把两个sql查询的结果合在一起遍历?
$res_1和$res_2里面的结果是:res_1 = array('a','b','c');res_2 = array('d','e','f');res = array_merge($res_1,$res_2 );print_r($res);array([0]=>'a',,[1]=>'b',[2]=>'c',[3]=>'d',[4]=>'e',[5]=>'f');然后就可以遍历$res了。
二级Python---组合数据类型(DAY 5)
可以使用遍历循环对列表类型的元素进行遍历操作,基本使用方式如下 3.列表的切片 切片是列表的基本操作,用于获得列表的一个片段,即获得一个或多个元素。切片后的结果也是列表类型。切片的使用方式:切片获取列表类型从N到M(不包含M)的元素组成新的列表。当K存在时,切片获取列表类型从N到M(不包含M...
属相六合和三合是什么意思?
三合指申子辰合水局、亥卯未合木局、寅午戌合火局,巳酉丑合金局。六合指鼠牛、虎猪、兔狗、龙鸡、蛇猴、马羊。生肖,又称属相或十二年兽,是以十二种动物代表年份,称为十二生肖,各文化有不同的动物,其中汉文化为鼠、牛、虎、兔、龙、蛇、马、羊、猴、鸡、狗、猪。中国除了用生肖纪年外,...
探讨php删除文件夹的三种方法
二、使用PHP的rmdir函数 PHP提供了rmdir函数,可以直接删除一个空的文件夹。如果要删除的文件夹中包含文件或其他子文件夹,这种方法将不适用。因此,使用rmdir函数删除文件夹时,需要确保文件夹为空或者先处理其中的内容。三、使用unlink函数结合遍历文件夹 另一种方法是使用unlink函数结合遍历文件夹的方式...
for 和foreach分别用于什么场合?
for语句在循环语句中有着重要的位置,首先它计算一个初始化序列,然后当某个条件为真时,重复执行嵌套语句并计算一个迭代表达式序列;如果为 False,则退出 for循环, for语句常用于遍历数组集合。foreach循环专门用来遍历数组和集合的元素,foreach的工作原理是逐个枚举出数组或集合中的每一个元素,只要...
等待高手,请用数据结构结合C++做出程序,二叉树的遍历。
等待高手,请用数据结构结合C++做出程序,二叉树的遍历。 二叉树的遍历问题描述:创建二叉树并遍历基本要求:1、分别运用非递归的方式完成对二叉树的先序和后序遍历2、输出二叉树的高度3、输出每一层的结点数4、查找结点P和结点Q的最近共同祖... 二叉树的遍历问题描述:创建二叉树并遍历基本要求:1、 分别运用非递归...
VBA代码求助,遍历相同的字母组合?
'遍历单词表 For i = 0 To UBound(words)For j = i + 1 To UBound(words)'查找相同的字母组合 For k = 1 To Len(words(i))For l = 1 To Len(words(j))If Mid(words(i), k, 3) = Mid(words(j), l, 3) And Len(words(i)) >= k + 2 And Len(words(j)) >= l +...
三质数的判定方法有哪些?
-遍历小于等于n的所有质数,判断是否存在三个质数之和为一个合数。4.素性测试:对于给定的三个数,使用素性测试算法(如米勒-拉宾素性测试)判断它们是否都是质数。如果都是质数,再判断它们的和是否为合数。以上是常用的判定三质数的方法,不同的方法适用于不同的情况,可以根据具体需求选择合适的方法...
js合并相同值是什么意思
在JS中,合并相同值可以使用不同的技术。 一种简单的方法是使用for循环来遍历数组元素,并在遍历过程中使用一个新数组来存储相同值的元素。 另一种更现代的方法是使用ES6的Map对象。 Map对象提供了一种简单而快速的方法来存储键值对,并可以轻松处理相同键的值。 无论使用哪种方法,JS都提供了许多工具...
玉米怡邦: 1描述法 2列举法 3图像法
浠水县18850407487: 遍历java集合或数组的几种方式 - ?
玉米怡邦: list集合的遍历3种方法:[java] view plaincopy package com.sort; import java.util.ArrayList; import java.util.Iterator; import java.util.List;/*** list的三种遍历* @author Owner**/ public class ListTest { public static void main(String[] args) { List<String> list =...
浠水县18850407487: JAVA的遍历集合什么意思 - ?
玉米怡邦: 就是将集合中的所有元素以此取出来, 有三种方法: 比如 List list = new ArrayList(); list.add...1. 对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历: int size = list.size(); for(int i = 0; i < size; i ++) {list.get(i); }2. 集合类的通用遍历方式...
浠水县18850407487: list遍历哪种效率最高 - ?
玉米怡邦: list遍历哪种效率最高 list集合的遍历3种方法:[java] view plaincopy package com.sort;import java.util.ArrayList; import java.util.Iterator; import java.util.List;/** * list的三种遍历 * @author Owner * */ public class ListTest {public static void main(...
浠水县18850407487: Java中遍历集合的三种方法(for循环、for循环jdk1.5的新方法、Iterator接口).?
玉米怡邦: 假设一个集合 char [] charArray = new [10]; 1. for(int i; i<c.length; i++){} 2. for(char c : charArray){} 3. Iterator it = charArray.iterator(); while(it.hasNext()){}
浠水县18850407487: 如何在java中实现List集合的遍历 - ?
玉米怡邦: java中实现List集合的遍历有三种方法: 方法一:for-each循环 for(String attribute : list) {System.out.println(attribute); } 方法二:for循环 for(int i = 0 ; i < list.size() ; i++) {system.out.println(list.get(i)); } 方法三:迭代器迭代 Iterator it = list.iterator(); while(it.hasNext()) {System.ou.println(it.next); }
浠水县18850407487: 哪种遍历效率高些 - ?
玉米怡邦: 哪种遍历效率高些 list集合的遍历3种方法:[java] view plaincopy package com.sort; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /*** list的三种遍历* @author Owner**/ public class ListTest {public static void main(String[]...
浠水县18850407487: 二叉树的遍历??
玉米怡邦: 9二叉树的遍历 (1)遍历:遍历(traverse)一个有限结点的集合,意味着对该集合中的每个结点访问且仅访问一次. (2)三种遍历方式 先序遍历(VLR):先序就是先访问结点元素,然后是左,然后是右. 若二叉树不为空访问根结点;先序...
浠水县18850407487: java集合遍历 - ?
玉米怡邦: 加一个控制变量int check=0,然后在if中改变他的值,如果找到了员工则check=1;然后在for外面判断check是不是等于1,是就打印查无此人
浠水县18850407487: java中对集合对象list的几种循环访问总结 - ?
玉米怡邦: List一共有三种遍历方法,如下: import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class Main {public static void main(String[] args) {List<Integer> list = new ArrayList<>();for (int i = 0; i < 10; i++) {list.add(i);} //for循环...