如何在Java中实现学生信息查询

答案是Java中通过Student类和ArrayList实现学生信息查询,使用循环或Stream API按学号、姓名、成绩等条件检索,数据量大时可用HashMap优化查找。

在Java中实现学生信息查询,核心是设计一个清晰的数据结构来存储学生信息,并提供按条件检索的功能。通常使用类表示学生,集合类如ArrayList存储多个学生对象,再通过遍历或Stream API完成查询。

定义学生类(Student)

创建一个Student类,包含姓名、学号、年龄、成绩等基本属性,并提供构造方法和getter/setter方法。

public class Student {
    private String id;
    private String name;
    private int age;
    private double score;

    public Student(String id, String name, int age, double score) {
        this.id = id;
        this.name = name;
        this.age = age;
       

this.score = score; } // Getter 和 Setter 方法 public String getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public double getScore() { return score; } @Override public String toString() { return "Student{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + ", score=" + score + '}'; } }

使用集合存储学生数据

在主程序中创建ArrayList存放Student对象,模拟数据库中的学生记录。

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

List students = new ArrayList<>();
students.add(new Student("001", "张三", 20, 85.5));
students.add(new Student("002", "李四", 19, 92.0));
students.add(new Student("003", "王五", 21, 78.0));

实现多种查询方式

根据不同需求编写查询逻辑,比如按学号查找、按姓名关键字搜索、按成绩范围筛选。

  • 按学号精确查询:遍历列表比对id字段
  • 按姓名模糊查询:使用String的contains方法
  • 按成绩区间查询:判断score是否在指定范围内
// 按学号查询
public Student findByID(String id) {
    for (Student s : students) {
        if (s.getId().equals(id)) {
            return s;
        }
    }
    return null; // 未找到
}

// 按姓名关键字查询(返回列表)
public List findByName(String keyword) {
    List result = new ArrayList<>();
    for (Student s : students) {
        if (s.getName().contains(keyword)) {
            result.add(s);
        }
    }
    return result;
}

// 查询成绩高于某分数的学生
public List findByScoreAbove(double threshold) {
    return students.stream()
                   .filter(s -> s.getScore() >= threshold)
                   .toList();
}

基本上就这些。只要把数据封装好,用循环或Stream处理查询条件,就能实现灵活的学生信息检索。如果数据量大,可考虑用HashMap以学号为键提升查找效率。不复杂但容易忽略的是空值判断和输入校验。