JavaIO编程实例——数据排序处理

从键盘输入以下的数据:“TOM:89|JERRY:990|TONY:95”,数据格式为“姓名:成绩|姓名:成绩”。输入的内容按成绩进行排序,并将排序结果按照成绩由高到低排序。
对于排序的处理肯定使用Comparable接口完成,同时利用Arrays类来处理,这里面唯一不同的地方就在于此时数据的现实需要通过键盘输入。
1 、建立Student的程序类,并进行排序规则的配置。

package 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 getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getScore() {
		return this.score;
	}

	public void setScore(int score) {
		this.score = score;
	}
	@Override
	public String toString() {
		return "姓名:" + this.name + "、分数:" + this.score;
	}
	@Override
	public int compareTo(Student obj) {
		if(this.score>obj.score) {
			return 1;
		}else {
			return 0;
		}
	}
}

2、建立数据的输入处理操作,因为牵扯到拆分问题:

package demo.service;
import demo.vo.Student;
public interface IStudentService {
	public Student[] getData();//获取排序数据
}

3、建立StudentService子类

package demo.service.impl;

import java.util.Arrays;

import demo.service.IStudentService;
import 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 = 0 ; x < this.students.length; x ++) {
			String temp[] = result[x].split(":");
			this.students[x] = new Student(temp[0],Double.parseDouble(temp[1]));
		}
	}
	@Override
	public Student[] getData() {
		Arrays.sort(this.students);
		return this.students;
	}
}

4、定义Factory工厂类

package demo.factory;

import demo.InputUtil;
import demo.service.IStudentService;
import demo.service.impl.StudentServiceImpl;

public class Factory {
	private Factory() {}
	public static IStudentService getInstance() {
		return new StudentServiceImpl(InputUtil.getString("请输入数据信息:"));
	}
}

5、编写测试类

package demo;

import java.util.Arrays;

import demo.factory.Factory;

public class IOCaseDemo {
	public static void main(String[] args) {
		 System.out.println(Arrays.toString(Factory.getInstance().getData()));
	}
}
#TOM:88.8|CHERRY:99.8|DEMON:100.0|JOBS:66.66|SOLD:59.9
[姓名:DEMON、分数:100.0, 姓名:CHERRY、分数:99.8, 姓名:TOM、分数:88.8, 姓名:JOBS、分数:66.66, 姓名:SOLD、分数:59.9]

参考资料:https://edu.aliyun.com/lesson_1012_9021#_9021

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值