11.13 Comparable 接口(血干JAVA系类)

在这里插入图片描述

11.13.1比较器的基本应用

在这里插入图片描述
在这里插入图片描述
具 体 的 应 用 。 例 如 , 现 在 要 求 设 计 一 个 学 生 类 , 此 类 包 含 姓 名年 龄成 绩 , 并 产 生 一 个 对 象 数 组 , 要 求 按 成 绩 由 高 到 低 排 序 , 如 果 成 绩 相 等 , 则 按 年 龄 由 低 到 高 排 序 。 如 果直接编写排序操作,则会比较麻烦,所以此时来观察如何使用Arr a y s类中的s o rt()方法进行排序操作。

【例11.39】使用比较器进行排序操作

package jiaqi;

import java.util.Arrays;

class Student implements Comparable<Student>
{
	private int age;
	private String name;
	private double score;
	public Student(String name,int age,double score)
	{
		this.name = name;
		this.age = age;
		this.score = score;
	}
	public String toString()
	{
		return "name:"+this.name+"\t"+"age:"+this.age+"\t"+"score:"+this.score;
	}
	
	@Override
	public int compareTo(Student stu) 
	{
		if(this.score > stu.score)
		{
			return -1;
		}
		else if(this.score < stu.score)
		{
			return 1;
		}
		else 
		{
			if(this.age < stu.age)
			{
				return -1;
			}
			else if(this.age > stu.age)
			{
				return 1;
			}
			else 
			{
				return 0;
			}
		}
	}
	
}
public class demo351_1 
{

	public static void main(String[] args) 
	{
		// TODO 自动生成的方法存根
		System.out.println("test sort_age");
		Student stu1[] = {
				new Student("111", 9, 35),
				new Student("222", 18,35),
				new Student("333", 12, 35),
				new Student("444", 15, 35),
				new Student("555", 1, 35),
				};
		Arrays.sort(stu1);
		for(int i = 0;i < stu1.length ;i ++ )
		{
			System.out.println(stu1[i]);
		}
		System.out.println("test sort_score");		
		Student stu2[] = {
				new Student("111", 9,89),
				new Student("222", 9,99),
				new Student("333", 9,35),
				new Student("444", 9,66),
				new Student("555", 9,3),
				};
		Arrays.sort(stu2);
		for(int i = 0;i < stu2.length ;i ++ )
		{
			System.out.println(stu2[i]);
		}
	}	
}

11.13.2分析比较器的排序原理【略】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿斯卡码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值