【Java】List集合遍历的五种方法

🎊专栏【Java】

🌺每日一句:人生最重要的就是要清醒的认知

⭐欢迎并且感谢大家指出我的问题

目录

1.通过for循环配合List接口中的size()和get(index i)的方法

2.使用Iterator迭代器及其方法遍历集合

🍔迭代器

🍔具体操作

3.增强for循环遍历

🍔是for循环的一种

🍔格式

🍔好处

🍔弊端

4.forEach(Consumer action)遍历集合

🍔格式

🍔Lmabda表达式的省略原则

(5)forEachRemaining(Consumer action)遍历集合

🍔格式


1.通过for循环配合List接口中的size()和get(index i)的方法

代码如下👇🏻

public static void main(String[] args) {
  // TODO Auto-generated method stub
   List list = new ArrayList();
   list.add("hello");
   list.add("world");
   list.add("java");
   list.add("world");
  for (int i = 0; i < list.size(); i++) {
		String s = (String) list.get(i);
		System.out.println(s);
	}
}

运行截图👇🏻

2.使用Iterator迭代器及其方法遍历集合

🍔迭代器

🍔是集合的获取元素的方式。

🍔是依赖于集合而存在的。

🍔相关方法:

Object next():获取元素,并移动到下一个位置。

boolean hasNext():如果仍有元素可以迭代,则返回 true。

void remove():从迭代器指向的Collection中移除迭代器返回的最后一个元素(可选操作)

🍔具体操作

a:通过集合对象获取迭代器对象

b:通过迭代器对象的hasNext()方法判断有没有元素

c:通过迭代器对象的next()方法获取元素并移动到下一个元素位置

代码如下👇🏻

public static void main(String[] args) {
 // TODO Auto-generated method stub
	List list =new ArrayList();
	list.add("hello");
	list.add("world");
	list.add("java");
	list.add("world");
   Iterator iterator=list.iterator();
	while(iterator.hasNext()) {
		String str=(String)iterator.next();
		System.out.println(str);
		}
	}

运行截图👇🏻

3.增强for循环遍历

🍔格式

for(元素的数据类型 变量名 : 数组或者Collection集合的对象) {

 使用该变量即可,该变量其实就是数组或者集合中的元素。

}

🍔好处

简化了数组和集合的遍历

🍔弊端

增强for循环的目标不能为null。建议在使用前,先判断是否为null。

代码如下👇🏻

public static void main(String[] args) {
	// TODO Auto-generated method stub
   List list =new ArrayList();
   list.add("hello");
   list.add("world");
   list.add("java");
   list.add("world");
 for(Object o:list) {
	String str=(String) o;
	System.out.println(str);
  }
}

运行截图👇🏻

4.forEach(Consumer action)遍历集合

根据Lambda的特性,该方法所需要的参数是一个函数式接口

🍔格式

list.forEach((Object o)->{System.out.println("迭代集合元素:"+o);});

🍔Lmabda表达式的省略原则

(1)如果方法中只有一个参数,那么数据类型和小括号都可以省略

(2)如果方法中有多个参数,那么数据类型可以省略

(3)如果大括号中只有一行代码,那么大括号、return、分号都可以省略(三者必须一起省略)

代码如下👇🏻

public static void main(String[] args) {
	// TODO Auto-generated method stub
   List list =new ArrayList();
   list.add("hello");
   list.add("world");
   list.add("java");
   list.add("world");
    //Lmabda表达式正常格式
  list.forEach((Object a)->{
	System.out.println(a);
    });
  System.out.println("----------");
	//Lmabda表达式省略格式
  list.forEach(o->System.out.println(o));
}

运行截图👇🏻

5.forEachRemaining(Consumer action)遍历集合

该方法同样需要一个函数式接口

🍔格式

iterator iterator=list.iterator();
iterator.forEachRemaining(obj->System.out.println("迭代集合元素"+obj));

代码如下👇🏻

public static void main(String[] args) {
	// TODO Auto-generated method stub
   List list =new ArrayList();
   list.add("hello");
   list.add("world");
   list.add("java");
   list.add("world");
    //将集合转换成Iterator迭代器对象
  Iterator iterator=list.iterator();
    //使用forEachRemaining(Consumer action)来遍历迭代器对象
  iterator.forEachRemaining(o->System.out.println(o));
}

运行截图👇🏻


🌺如果大家有不明白的地方,或者文章部分内容有问题,欢迎大家在评论区讨论,指正🌺

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
SpringBoot_Freemarker生成Word_多个表格+两层嵌套循环; 步骤说明: 1.用Microsoft Office Word打开word原件;将文档中需要动态生成的内容,替换为属性名 ${name} 2.另存为,选择保存类型Word 2003 XML 文档(*.xml) 3.用Firstobject free XML editor打开文件,选择Tools下的Indent【或者按快捷键F8】格式化文件内容。左边是文档结构,右边是文档内容; 4. 文档生成后有时需要手动修改,查找第一步中设置的属性名,可能会产生类似${n.....ame}类似的样子,我们将将名字中间的标签删掉,恢复为${name} 5. word模板中有表格,需要循环的位置, 用 标签将第二对 标签(即除表头的w:tr标签后的一对)包围起来 同时表格内的属性例如${name},在这里需要修改为${user.name} (userList集合在dataMap中的key, user是集合中的每个元素, 类似), 如图: PLUS:若表格之外还有嵌套的循环,也需要用,注意这里的标签不要和某对其他标签交叉,不可以出现这种 6. 标识替换完之后,另存为.ftl后缀文件即可。 代码里是相对有一丢丢复杂的,两层嵌套循环; 总(dataMap) deptName 部门名 list(Table)表的集合 table1(map) table-名字 ${map.table} tableName-中文名 ${map.tableName} columnCount-字段数 ${map.columnCount} recordCount-记录数 ${map.recordCount} listA-List--表格1 map.listA column Model属性——字段名 ${model.column} columnName Model属性——字段中文名 ${model.column} rate Model属性——字段占比 ${model.rate} nullValueCount Model属性——字段空值数 ${model.nullValueCount} listB-List--表格2 map.listB …… listC-List--表格3 map.listC …… table2 table-名字 ${map.table} tableName-中文名 ${map.tableName} columnCount-字段数 ${map.columnCount} recordCount-记录数 ${map.recordCount} listA-List--表格1 map.listA column Model属性——字段名 ${model.column} columnName Model属性——字段中文名 ${model.column} rate Model属性——字段占比 ${model.rate} nullValueCount Model属性——字段空值数 ${model.nullValueCount} listB-List--表格2 map.listB …… listC-List--表格3 map.listC …… table3 ……
Java范例开发大全(全书源程序),目录如下: 第1篇  Java编程基础 第1章  Java开发环境的搭建(教学视频:9分钟) 2 1.1  理解Java 2 1.2  搭建Java所需环境 3 1.2.1  下载JDK 3 1.2.2  安装JDK 4 1.2.3  配置环境 5 1.2.4  测试JDK配置是否成功 7 实例1  开发第一个Java程序 7 第2章  Java基础类型与运算符 实例2  自动提升 9 实例3  自动转换 10 实例4  常用基础类型之强制转换 11 2.2  运算符 12 实例5  算术运算符 12 实例6  关系运算符 13 实例7  逻辑运算符 14 实例8  位运算符 15 实例9  移位运算符 16 实例10  转型运算符 17 2.3  其他形式 18 实例11  常量与变量 18 实例12  各种进制的转换 19 实例13  Java中的进制与移位运算符 22 第3章  条件控制语句(教学视频:75分钟) 26 3.1  if控制语句 26 实例14  判断输入的年份是否为闰年 26 实例15  抽奖活动 27 3.2  for语句 28 实例16  小九九乘法表 28 实例17  如何列出素数 29 实例18  Java中的递归 31 实例19  男生女生各多少人 32 实例20  求水仙花数 34 实例21  求任意一个正数的阶乘 35 实例22  求n的n次方 35 实例23  利用for循环输出几何图形 36 实例24  杨辉三角 38 3.3  while语句 39 实例25  求1到100之间的和 39 实例26  存上100元需要多少天 40 实例27  输出100之间的所有偶数 41 实例28  如何判断回文数字 42 3.4  do…while语句 43 实例29  输出100之间的所有奇数 44 实例30  求最大的随机数 44 3.5  switch语句 45 实例31  判断字母分类 46 实例32  优良及差 47 实例33  打印任意一年日历 48 实例34  一年四季的划分 51 第2篇  Java数据处理 第4章  异常处理(教学视频:62分钟) 54 4.1  编译时异常 54 实例35  除0发生的算术异常(ArithmeticException) 54 实例36  数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37  数组元素类型不匹配异常(ArrayStoreException) 56 实例38  强制类型转换异常(ClassCastException) 56 实例39  索引越界异常(IndexOutOfBoundsException) 57 实例40  空指针异常(NullPointerException) 58 实例41  数字格式转换异常(NumberFornatException) 59 实例42  字符串索引越界异常(StringIndexOutBounds) 60 实例43  操作错误(UnsupportedOperationException) 60 4.2  运行时异常 61 实例44  找不到指定类时发生的异常(ClassNotFoundException) 62 实例45  请求的方法不存在(NoSuchMethodException) 63 4.3  try…catch捕获异常 65 实例46  try…catch捕获异常的实例 66 实例47  try…catch…finally捕获异常的实例 67 实例48  try…catch嵌套捕获异常的实例 68 4.4  throws声明异常 69 实例49  throws声明异常实例一 69 实例50  throws声明异常实例二 70 4.5  throw抛出异常 72 实例51  throw抛出异常实例一 72 实例52  throw抛出异常实例二 73 4.6  自定义异常 74 实例53  自定义异常实例一 74 实例54  自定义异常实例二 75 第5章  数组(教学视频:98分钟) 78 5.1  一维数组 78 实例55  一维数组的创建与使用 78 实例56  按相反的顺序输出 79 实例57  奇偶分组 80 实例58  找宝 81 实例59  寻找最小数 82 实例60  我的位置在哪里 83 实例61  复制数组 85 实例62  插入新元素 86 实例63  数组的合并 87 实例64  去除重复元素 88 实例65  数组求和计算 90 实例66  求最大值、最小值和平均值 91 5.2  二维数组 92 实例67  二维数组的创建与使用 92 实例68  矩阵转置 93 实例69  奇数阶幻

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dawn黎明开始

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值