开发者学堂课程【Java 高级编程:数据排序处理】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/352
数据排序处理
从键盘输入以下的数据:“TOM:89|JERRY:90|TONY:95”,数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将排序结果按照成绩由高到低排序。
对于排序的处理肯定使用 Comparable 接口完成,同时利用 Arrays 类来处理,这里面唯一不同的地方就在于此时的数据显示需要通过键盘输入。
1、建立 Student 的程序类,并且进行排序规则的配置。
操作过程:
package cn.mldn.demo.vo;
public class Student implements Comparable<Student>{
private String name;
private
double score
;
public Student(String name,
double score
){
this.name=name;
this.
score
=
score
;
}
public String toString(){
return"姓名:"+this.name+"、
成绩
:"+this.
score
;
}
@Override public int compareTo(student obj){
if (this.score 〉 obj.score){
return -1 ;
} else if (this.score < obj.score) {
return 1 ;
} else {
return θ;
}
}
2、建立数据的输入处理操作,因为牵扯到拆分问题;
操作过程:
package cn.mldn.demo.service;
import cn.mldn.demo.vo.Student;
public interface IStudentservice {
public Student[] getData(); //获取排序数据
}
3、建立 IStudentService子类
操作过程:
package cn.mldn.demo.service.impl;
import cn.mldn.demo.service.IStudentService;
import cn.mldn.demo.vo.Student;
public class StudentserviceImpl implements IStudentservice {
private String content ;
private Student [] students ;
public StudentServiceImpl(String content){
this.content = content ;
this.handle();//进行数据处理
private void handle(){//进行字符串数据的处理操作
String result []= this.content.split("\\!");// 拆分数据
this.students = new Student[result.length];
for (int x = θ ;×< this.students.length;x ++){
string temp[]= result[x].split(":");
this.students[x]= new Student(temp[θ],Double.parseDouble(temp[1]));
}
}
@Override public Student[] getData(){
Arrays.Sort(this.students);
return null;
}
4、定义Factory工厂类
package cn.mldn.demo.factory;
import cn.mldn.demo.service.IStudentService;
import cn.mldn.demo.service.impl.StudentServiceImpl;
import cn.mldn.demo.util.Inpututil;
public class Factory {
private Factory(){}
public static Istudentservice getInstance(){
return new StudentServiceImpl(Inpututil.getstring("请输入数据信息:"));
}
}
5.编写测试类
package cn.mldn.demo;
import cn.mldn.demo.factory.Factory;
public class IOCaseDemo {
public static void main(string[] args){ System.out.printl(Arrays.toString(Factory.getInstance().getData());
}
}
Tom:89.1|Jerry:90.01|qiangqiang:59.9
输入信息,执行代码得