设计思路:
比较器首先Comparable<T>,并使用Array.sort()进行排序,最后使用Array.toString()进行输出显示。
代码实现:
首先进行学生类的创建,学生类进行接口Comparable<T>的实现。
public class Student implements Comparable<Student>{
private String name;
private double score;
public Student() {
}
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() { // 变量变字符串
return "|" + "姓名:" + name +
", 成绩:" + score + "|";
}
@Override
public int compareTo(Student student) { // 重写方法,比较大小,小于返回负整数,等于返回0,大于返回正整数
return (int)(this.score - student.score);
}
}
然后定义一个接口对设置学生信息类进行标准化:
public interface ISetStudent {
public Student[] setStudentsArray();
}
然后定义一个学生信息设置类进行对学生的姓名和成绩进行设置:
import java.util.Scanner;
public class SetStudent{
public Student[] setStudentsArray(){ // 设置个数并返回学生类数组
Scanner sc = new Scanner(System.in);
System.out.print("请输入添加的个数:");
int count = sc.nextInt();
Student[] students = new Student[count];
for (int i = 0; i < count; i++) {
System.out.println("第【"+(i+1)+"】个:");
students[i] = new SetStudent().setStudent(new Student()); // 设置数组元素
}
return students; // 返回学生类数组
}
private Student setStudent(Student student){ // 设置学生姓名和成绩信息
Scanner sc = new Scanner(System.in);
System.out.print("姓名:");
student.setName(sc.next());
System.out.print("成绩:");
student.setScore(sc.nextDouble());
return student;
}
}
利用工厂类进行对象的获取:
public class Factory{
public static ISetStudent getInstance(){
return new SetStudent();
}
}
客户端调用:
import java.util.Arrays;
public class MAIN {
public static void main(String[] args) {
Student[] st = Factory.getInstance().setStudentsArray();
Arrays.sort(st);
System.out.println(Arrays.toString(st));
}
}
以上就是进行学生信息输入并排序后打印的简单代码实现。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)