创建实体类


```java
package listDemo;import lombok.Data;@Data
public class Student {/*** id 主键*/private Integer Id;/*** 姓名*/private String name;/*** 年龄*/private Integer age;/*** 年级*/private String grade;/*** 班级*/private String classNmae;public Student(Integer id, String name, Integer age, String grade, String classNmae) {Id = id;this.name = name;this.age = age;this.grade = grade;this.classNmae = classNmae;}}
创建模拟数据
package listDemo;import java.util.ArrayList;
import java.util.List;public class studentService {public static List<Student> getStudentList(){List<Student> studentList = new ArrayList<>();studentList.add(new Student(1,"小明",16,"高一","3班"));studentList.add(new Student(2,"小李",18,"高三","1班"));studentList.add(new Student(3,"小王",16,"高一","2班"));studentList.add(new Student(4,"小徐",17,"高二","4班"));studentList.add(new Student(5,"小马",19,"高三","6班"));return studentList;}
}
创建main方法
package listDemo;import java.util.List;public class demo1 {public static void main(String[] args) {// 获取 List 数据List<Student> studentList = studentService.getStudentList();// 1.Java8 遍历ListstudentList.forEach(System.out::println);System.out.println("--------------------------------------------------------------");//studentList.forEach(System.out ::println);等同于 studentList.forEach(student -> {System.out.println(student);});System.out.println("--------------------------------------------------------------");//2.常规遍历for(int i=0;i<studentList.size();i++){System.out.println("常规遍历"+studentList.get(i));}System.out.println("--------------------------------------------------------------");for(Object s : studentList){System.out.println("常规遍历第二种方式"+s);}System.out.println("--------------------------------------------------------------");studentList.stream().forEach(student -> {System.out.println("流遍历"+student);});System.out.println("--------------------------------------------------------------");studentList.stream().filter(s ->s.getGrade() != "高三").forEach(s2 ->{System.out.println("过滤器遍历"+s2);});}}
输出结果

Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)


常规遍历Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
常规遍历Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
常规遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
常规遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
常规遍历Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

常规遍历第二种方式Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
常规遍历第二种方式Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
常规遍历第二种方式Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
常规遍历第二种方式Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
常规遍历第二种方式Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

流遍历Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
流遍历Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
流遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
流遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
流遍历Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

过滤器遍历Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
过滤器遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
过滤器遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)

Process finished with exit code 0

假设获得新的信息,存放在新的list里,想要修改student信息
创建模拟数据
package listDemo;import java.util.ArrayList;
import java.util.List;public class studentService {public static List<Student> getStudentList(){List<Student> studentList = new ArrayList<>();studentList.add(new Student(1,"小明",16,"高一","3班"));studentList.add(new Student(2,"小李",18,"高三","1班"));studentList.add(new Student(3,"小王",16,"高一","2班"));studentList.add(new Student(4,"小徐",17,"高二","4班"));studentList.add(new Student(5,"小马",19,"高三","6班"));return studentList;}public static List<Student> updateStudentList(){List<Student> studentList = new ArrayList<>();studentList.add(new Student(1,"xiaoming",null,null,null));studentList.add(new Student(2,"xiaoli",null,null,null));return studentList;}
}
main方法
package listDemo;import com.sun.xml.internal.bind.v2.model.core.ID;import javax.naming.Name;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;public class demo1 {public static void main(String[] args) {// 获取 List 数据List<Student> studentList = studentService.getStudentList();// 1.Java8 遍历ListstudentList.forEach(System.out::println);System.out.println("--------------------------------------------------------------");//studentList.forEach(System.out ::println);等同于 studentList.forEach(student -> {System.out.println(student);});System.out.println("--------------------------------------------------------------");//2.常规遍历for(int i=0;i<studentList.size();i++){System.out.println("常规遍历"+studentList.get(i));}System.out.println("--------------------------------------------------------------");for(Object s : studentList){System.out.println("常规遍历第二种方式"+s);}System.out.println("--------------------------------------------------------------");studentList.stream().forEach(student -> {System.out.println("流遍历"+student);});System.out.println("--------------------------------------------------------------");studentList.stream().filter(s ->s.getGrade() != "高三").forEach(s2 ->{System.out.println("过滤器遍历"+s2);});System.out.println("--------------------------------------------------------------");//修改student信息List<Student> updateList = studentService.updateStudentList();//第一种方式int a = studentList.size();int b = updateList.size();for(int i =0;i<a;i++){for (int n =0;n<b;n++){if(studentList.get(i).getId().equals(updateList.get(n).getId())){studentList.get(i).setName(updateList.get(i).getName());}}}for(int i=0;i<studentList.size();i++){System.out.println("第一种方式修改后遍历"+studentList.get(i));}System.out.println("--------------------------------------------------------------");//第二种方式studentList.stream().forEach(s1 -> {updateList.stream().filter(s2 -> s1.getId().equals(s2.getId())).forEach(s3 ->{s1.setName(s3.getName());System.out.println("第二种方式修改后遍历"+s1);});});}}
结果

Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

常规遍历Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
常规遍历Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
常规遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
常规遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
常规遍历Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

常规遍历第二种方式Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
常规遍历第二种方式Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
常规遍历第二种方式Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
常规遍历第二种方式Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
常规遍历第二种方式Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

流遍历Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
流遍历Student(Id=2, name=小李, age=18, grade=高三, classNmae=1班)
流遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
流遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
流遍历Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

过滤器遍历Student(Id=1, name=小明, age=16, grade=高一, classNmae=3班)
过滤器遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
过滤器遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)

第一种方式修改后遍历Student(Id=1, name=xiaoming, age=16, grade=高一, classNmae=3班)
第一种方式修改后遍历Student(Id=2, name=xiaoli, age=18, grade=高三, classNmae=1班)
第一种方式修改后遍历Student(Id=3, name=小王, age=16, grade=高一, classNmae=2班)
第一种方式修改后遍历Student(Id=4, name=小徐, age=17, grade=高二, classNmae=4班)
第一种方式修改后遍历Student(Id=5, name=小马, age=19, grade=高三, classNmae=6班)

第二种方式修改后遍历Student(Id=1, name=xiaoming, age=16, grade=高一, classNmae=3班)
第二种方式修改后遍历Student(Id=2, name=xiaoli, age=18, grade=高三, classNmae=1班)

Process finished with exit code 0

![demo](https://img-blog.csdnimg.cn/5bf4e250083a44209e79d089d516ad7c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6L-b6Zi255qE57KJ5bCY,size_20,color_FFFFFF,t_70,g_se,x_16)
总结:项目中service查询数据库后返回的list里有多条数据,还是用第二种修改方式比较稳妥快捷,注意添加非空判断,否则会有空指针报错

个人笔记-List遍历一(遍历及修改)相关推荐

  1. Golang——切片使用大全(创建、初始化、遍历、截取、修改、添加、切片的copy、切片作为函数参数、切片求和、切片求最大值)

    概念: 切片出现的原因也是因为数组的可操作性不高.切片的长度是不固定的,可以追加数据,可以理解切片是一个动态数组,切片的底层是一个结构体 切片类型(slice)本身并不是动态数组或数组指针.它内部通过 ...

  2. 【jQuery笔记Part3】01-jQuery-each遍历

    each遍历 静态方法:jQuery.each(object, [callback]) 对象方法:$().each(callback) 遍历数组 javaScript 中的遍历数组 静态方法遍历数组 ...

  3. R语言for循环语句编程:for循环遍历向量内容并修改向量内容

    R语言for循环语句编程:for循环遍历向量内容并修改向量内容 目录 R语言for循环语句编程:for循环遍历向量内容并修改向量内容

  4. 二叉树学习笔记之利用前序遍历递归创建二叉树

    利用前序遍历创建二叉树 树的遍历 前序遍历(preorder traversal) 利用前序遍历创建二叉树 中序遍历访问所有结点 前序遍历访问所有结点 后序遍历访问所有结点 实例 树的遍历 树的遍历是 ...

  5. python二叉树最大深度的计算_Python学习笔记24(二叉树遍历、最大深度、最大宽度)...

    classNode(object):"""节点类""" def __init__(self,elem=-1,lchild=None,rchi ...

  6. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  7. 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码

    伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visi ...

  8. 图的遍历 BFS遍历(深学思维)

    前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 问题描述: 马上到寒假了,JXY准备去n大城市游玩.这些城市之间有些有航线,有些没有.由于JXY特别懒,现在他想请一个更蒟蒻的人AY ...

  9. 【图】深度优先遍历 广度优先遍历

    文章目录 一.广度优先遍历 二.深度优先遍历 深度优先遍历和广度优先遍历是遍历图的两种常见方式,接下来就通过这两种方式来实现一下图具体遍历的过程 当我位于游乐园的景区 A 时,为了玩遍所有的景区我们有 ...

  10. 先序遍历 中序遍历 后序遍历 层序遍历

    二叉树链式结构的遍历 所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问.访问结点所做的操作依赖于具体的应用问 题. 遍历是二叉树上最重要的运算之一,是二叉树 ...

最新文章

  1. Unity3D GUI中的图片尾随鼠标旋转脚本
  2. 一根Express Route同时支持ARM和ASM的VNET
  3. boost::proto::switch_相关的测试程序
  4. linux平台下Tomcat的安装与优化
  5. 直播预告:与九位专家聊聊Codec和AOM Summit
  6. Travis CI 一些专用术语介绍
  7. The Water Bowls POJ - 3185(开关问题+暴力)
  8. C语言 | 二维数组
  9. Eureka/Zookeeper/Consul三种注册中心的区别
  10. 通信原理---FPGA---HDB3码编码
  11. OKR案例: 回顾/复盘会流程模板
  12. LabVIEW编程LabVIEW开发1920 LCR仪表例程与相关资料
  13. 计算机显卡型号中数字含义详解,科普入门 | 那些显卡型号告诉我们的事
  14. Cobaltstrike系列教程(十一)提权与横向移动
  15. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——G.养花【网络流】
  16. 新一配:iPod及其配置介绍【转载】
  17. 状态压缩Dp模板-玉米田
  18. 国密算法TF32A09硬件加密芯片
  19. Python实现常见泛洪攻击
  20. Kindle4RSS.com - Kindle RSS新闻文章推送服务

热门文章

  1. mysql基本的修改表的命令
  2. JVM调优(6)新一代的垃圾回收算法
  3. Linux C语言中的IO--标准IO
  4. 技术精讲丨多线程环境下时间轮-海量定时任务的定时器设计
  5. 小书匠 导出html,小书匠编辑器使用手册
  6. bboss安全认证过滤器认证后重定向到请求页面功能介绍
  7. 记事本代码Linux编译不了,Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)...
  8. 十字路口待转区什么用_开车经过十字路口,什么时候可以进入左转待转区呢?...
  9. JVM面试题(面试必备)
  10. 深度学习入门 错误汇总