Java中LinkedList出现的问题

4.设计并实现一个Student类,要求满足:
1)成员变量有name,score,分别是String和int类型,访问权限为默认。
2)有参数构造方法,给对象成员变量附初始值。
3)成员变量的getter方法获取成员变量值。
4)Student类实现java.lang.Comparable接口,重写int compareTo(T t) 方法,实现按照成绩高低比较两个Student对象的大小
设计一个StudentTest类,要求满足:
1)从键盘接受输入数据,构造三个学生对象,其成员变量值分别为("张1",71),("李2",94),("王3",65)
2)创造一个Student对象的LinkedList链表,表中有上述三个学生对象
3)循环遍历链表对象,按照成绩高低升序排序,并将学生信息打印出 来。

img

img

上面实例对象是大写 下面链表添加数据是小写

img


package csdn20220606;

import java.util.Comparator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

/**
 * @author wf
 */
public class Student implements Comparable{
    String name;
    Integer score;

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

    public String getName() {
        return name;
    }

    public Integer getScore() {
        return score;
    }


    @Override
    public int compareTo(Object o) {
        if (o instanceof Student) {
            Student student = (Student)o;
            return this.score > student.getScore() ? 1 : 0;
        }else {
            return -1;
        }
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
}

class StudentTest {
    public static void main(String[] args) {
        List<Student> list = new LinkedList<>();
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入第1个学生的名称:");
        String name1 = scanner.next();
        System.out.print("请输入第1个学生的成绩:");
        int score1 = scanner.nextInt();
        list.add(new Student(name1,score1));

        System.out.print("请输入第2个学生的名称:");
        String name2 = scanner.next();
        System.out.print("请输入第2个学生的成绩:");
        int score2 = scanner.nextInt();
        list.add(new Student(name2,score2));

        System.out.print("请输入第3个学生的名称:");
        String name3 = scanner.next();
        System.out.print("请输入第3个学生的成绩:");
        int score3 = scanner.nextInt();
        list.add(new Student(name3,score3));

        list = list.stream().sorted(Comparator.comparing(Student::getScore)).collect(Collectors.toList());
        for (Student student : list) {
            System.out.println(student);
        }
    }
}