Java List forEach 根据条件修改两个属性值

在Java中,List是一种常用的数据结构,它允许我们按照特定的顺序存储和访问元素。当我们需要对List中的每个元素执行某种操作时,通常会使用forEach方法。本文将介绍如何使用Java List的forEach方法来根据条件修改两个属性值,并提供相应的代码示例。

List和forEach方法简介

List是Java集合框架中的一种实现,它可以存储一组有序的元素,并提供了一系列方法来进行元素的增删改查操作。常见的List实现包括ArrayList和LinkedList等。

forEach是Java 8引入的一个新方法,它位于java.util.List接口中,用于对List中的每个元素执行给定的操作。forEach方法接受一个Lambda表达式作为参数,该表达式定义了要对每个元素执行的操作。

根据条件修改两个属性值

假设我们有一个存储学生信息的List,每个学生对象包含姓名和分数两个属性。我们希望遍历List中的所有学生对象,并根据他们的分数进行一些操作。具体来说,如果学生的分数高于80,我们将把他们的姓名属性修改为"优秀",如果分数低于60,我们将把他们的姓名属性修改为"不及格"。

下面是一个示例的学生类定义:

public class Student {
    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getScore() {
        return score;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setScore(int score) {
        this.score = score;
    }
}

接下来,我们创建一个包含学生对象的List,并使用forEach方法根据条件修改他们的姓名属性:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        students.add(new Student("Tom", 85));
        students.add(new Student("Alice", 76));
        students.add(new Student("Bob", 58));

        // 使用forEach方法根据条件修改学生的姓名属性
        students.forEach(student -> {
            if (student.getScore() > 80) {
                student.setName("优秀");
            } else if (student.getScore() < 60) {
                student.setName("不及格");
            }
        });

        // 打印修改后的学生信息
        students.forEach(student -> System.out.println(student.getName() + ": " + student.getScore()));
    }
}

上述代码首先创建了一个包含三个学生对象的List,并使用forEach方法遍历每个学生对象。在Lambda表达式中,我们根据学生对象的分数属性进行条件判断,并修改对应的姓名属性。最后,我们再次使用forEach方法打印修改后的学生信息。

状态图

下面是根据条件修改学生姓名属性的状态图,使用mermaid语法表示:

stateDiagram
    [*] --> 遍历学生对象
    遍历学生对象 --> 条件判断
    条件判断 --> 修改姓名属性
    修改姓名属性 --> 打印学生信息
    修改姓名属性 --> 遍历学生对象
    打印学生信息 --> [*]

关系图

下面是学生类和List的关系图,使用mermaid语法表示:

erDiagram
    STUDENT ||--|{ LIST : contains

总结

本文介绍了如何使用Java List的forEach方法来根据条件修改两个属性值。通过遍历List中的每个元素,并使用Lambda表达式进行条件判断和属性修改,我们可以很方便地实现相应的操作。同时,我们也通过状态图和关系图展示了代码的执行流程和类之间的关系。

希望本文对你理解Java List的forEach方法及其用法有所帮助。如果有任何问题或建议,请随时联系我们。