Java方法如何传入List

在Java中,我们经常需要在方法之间传递数据。而对于一组数据,我们通常会使用List来进行存储和传递。本文将介绍Java方法如何传入List,并通过示例解决一个实际问题。

问题背景

假设我们需要编写一个程序来管理学生信息,其中包括学生的姓名、年龄和成绩。我们希望能够实现以下功能:

  • 添加学生信息
  • 删除学生信息
  • 修改学生信息
  • 查询学生信息
  • 打印所有学生信息

解决方案

为了实现上述功能,我们可以定义一个Student类来表示学生信息,其中包括姓名、年龄和成绩的属性。然后,我们可以使用List来存储学生信息。接下来,我们将通过示例代码来演示如何传入List。

定义Student类

首先,我们需要定义一个Student类,用来表示学生信息。代码如下:

public class Student {
    private String name;
    private int age;
    private double score;
    
    // 构造方法
    public Student(String name, int age, double score) {
        this.name = name;
        this.age = age;
        this.score = score;
    }
    
    // getter和setter方法省略
}

添加学生信息

接下来,我们需要实现添加学生信息的功能。我们可以定义一个addStudent方法,该方法接收一个List参数,用于存储学生信息。代码如下:

public void addStudent(List<Student> students, Student student) {
    students.add(student);
}

删除学生信息

类似地,我们可以定义一个removeStudent方法,用于删除学生信息。该方法接收一个List参数和一个学生的姓名,用于查找并删除指定姓名的学生信息。代码如下:

public void removeStudent(List<Student> students, String name) {
    for (Student student : students) {
        if (student.getName().equals(name)) {
            students.remove(student);
            break;
        }
    }
}

修改学生信息

类似地,我们可以定义一个updateStudent方法,用于修改学生信息。该方法接收一个List参数和一个学生的姓名,用于查找并修改指定姓名的学生信息。代码如下:

public void updateStudent(List<Student> students, String name, int age, double score) {
    for (Student student : students) {
        if (student.getName().equals(name)) {
            student.setAge(age);
            student.setScore(score);
            break;
        }
    }
}

查询学生信息

为了实现查询学生信息的功能,我们可以定义一个getStudent方法,该方法接收一个List参数和一个学生的姓名,用于查找并返回指定姓名的学生信息。代码如下:

public Student getStudent(List<Student> students, String name) {
    for (Student student : students) {
        if (student.getName().equals(name)) {
            return student;
        }
    }
    return null;
}

打印所有学生信息

最后,我们可以定义一个printStudents方法,用于打印所有学生信息。该方法接收一个List参数,遍历该List并逐个打印学生信息。代码如下:

public void printStudents(List<Student> students) {
    for (Student student : students) {
        System.out.println("姓名:" + student.getName());
        System.out.println("年龄:" + student.getAge());
        System.out.println("成绩:" + student.getScore());
        System.out.println("--------------------");
    }
}

示例代码

下面是一个完整的示例代码,演示了如何使用上述方法来管理学生信息:

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

public class StudentManager {
    private List<Student> students;
    
    public StudentManager() {
        students = new ArrayList<>();
    }
    
    public void addStudent(Student student) {
        students.add(student);
    }
    
    public void removeStudent(String name) {
        for (Student student : students) {
            if (student.getName().equals(name)) {
                students.remove(student);
                break;
            }
        }
    }
    
    public void updateStudent(String name, int age, double score) {
        for (Student student : students) {
            if (student.getName().equals(name)) {
                student.setAge(age);
                student.setScore(score);
                break;
            }
        }
    }
    
    public Student getStudent(String name) {
        for (