如何修复getAge()以获取代码中最年长学生的年龄? import java.util.ArrayList; 导入java.util.List; 导入java.util.Optional; 公立班学生{ 公立学生(字符串名称、整数年龄、字符串专业、字符串SSN){ } 公共静态void main(字符串[]args){ List studentList=new ArrayList(); 学生名单。添加(新学生(“爱丽丝”,22,“计算机科学”,“603-28-5324”); 学生名单。添加(新学生(“亚瑟”,19,“数学”,“402-23-5463”); 学生名单。添加(新学生(“Kim”,20,“英语”,“607-34-5463”); 新增(新生(“杰克”,24,“科学”,“537-52-6324”); 新增(新生(“鲍勃”,27,“计算机科学”,“345-23-4354”); 学生名单。添加(新学生(“莎拉”,21岁,“音乐”,“355-67-5352”); 学生名单。添加(新生(“玛丽亚”,19,“商业”,“567-45-8774”); 新增(新生(“罗伯特”,18岁,“艺术”,“732-65-7364”); 可选=studentList.stream() .max((p1,p2)->p1.getAge()-p2.getAge()); if(可选的.isPresent()){ 学生年龄=可选。get(); System.out.println(“年龄最大的学生是:“+Oldest.getAge()+”(“+Oldest.getAge()+”)); //getAge()不起作用。如何使它能够识别数组中的年龄并打印出带有年龄的名称? } } }

如何修复getAge()以获取代码中最年长学生的年龄? import java.util.ArrayList; 导入java.util.List; 导入java.util.Optional; 公立班学生{ 公立学生(字符串名称、整数年龄、字符串专业、字符串SSN){ } 公共静态void main(字符串[]args){ List studentList=new ArrayList(); 学生名单。添加(新学生(“爱丽丝”,22,“计算机科学”,“603-28-5324”); 学生名单。添加(新学生(“亚瑟”,19,“数学”,“402-23-5463”); 学生名单。添加(新学生(“Kim”,20,“英语”,“607-34-5463”); 新增(新生(“杰克”,24,“科学”,“537-52-6324”); 新增(新生(“鲍勃”,27,“计算机科学”,“345-23-4354”); 学生名单。添加(新学生(“莎拉”,21岁,“音乐”,“355-67-5352”); 学生名单。添加(新生(“玛丽亚”,19,“商业”,“567-45-8774”); 新增(新生(“罗伯特”,18岁,“艺术”,“732-65-7364”); 可选=studentList.stream() .max((p1,p2)->p1.getAge()-p2.getAge()); if(可选的.isPresent()){ 学生年龄=可选。get(); System.out.println(“年龄最大的学生是:“+Oldest.getAge()+”(“+Oldest.getAge()+”)); //getAge()不起作用。如何使它能够识别数组中的年龄并打印出带有年龄的名称? } } },java,Java,您应该创建成员变量并在构造函数中分配它们 import java.util.ArrayList; import java.util.List; import java.util.Optional; public class Student { public Student(String name, int age, String major, String SSN) { } public static void main(String[] args) { L

您应该创建成员变量并在构造函数中分配它们

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

public class Student {


public Student(String name, int age, String major, String SSN) {

    }


public static void main(String[] args) {

        List<Student> studentList = new ArrayList<>();

        studentList.add(new Student("Alice", 22, "Computer Science", "603-28-5324"));
        studentList.add(new Student("Arthur", 19, "Math","402-23-5463"));
        studentList.add(new Student("Kim", 20, "English","607-34-5463"));
        studentList.add(new Student("Jack", 24, "Science","537-52-6324"));
        studentList.add(new Student("Bob", 27, "Computer Science", "345-23-4354"));
        studentList.add(new Student("Sarah", 21, "Music", "355-67-5352"));
        studentList.add(new Student("Mariah", 19, "Business", "567-45-8774"));
        studentList.add(new Student("Robert", 18, "Art", "732-65-7364"));


        Optional<Student> optional = studentList.stream()
                .max((p1, p2) -> p1.getAge() - p2.getAge());
        if (optional.isPresent()) {
            Student oldest = optional.get();
            System.out.println("The Oldest Student is: " +oldest.getAge() + "(" + oldest.getAge() + ")");

            //getAge() doesn't work. How do I make it so that it will be able to recognize the age in the array and print out the name with the age?

        }
    }
}

什么
getAge()
?您从未定义过方法。嗨,Jason,欢迎来到Stack Overflow!你说“不行”是什么意思?你能不能用更多的书面英语解释一下你想做什么和失败的地方,或者把代码缩小到一个小范围?谢谢我不知道如何创建方法来识别getAge()或getName()。还刚刚意识到我不小心在系统打印行中放置了两次getAge(),因此您想创建一个
getAge()
方法,以返回给定
学生
对象数组中的最大年龄?非常欢迎Jason,请将问题标记为已解决
    public class Student {

        String name;
        int age;
        String major;
        String SSN;

        public Student(String name, int age, String major, String SSN) {
            this.name=name;
            this.age=age;
            this.major=major;
            this.SSN=SSN;
        }
        int getAge(){
            return age;
        }
        String getName()
        {
            return name;
        }

//and so on for all your variables
    }