Java:使用接口来实现排序(按照年龄或分数)

//封装一个排序类
package com.lanou.jk;
public interface Sort {
//规则
public int sort(Object obj,Object obj1);
}

class Test {
    //接收用户定义的排序规则的类
    public Sort s;
    public Test(Sort s){
        this.s = s;//不写无参数的意味着必须给个s否则不能用
    }
    public Object[] paixu(Object[] obj){
        for (int i = 0; i < obj.length - 1; i++) {
            for (int j = 0; j < obj.length - i - 1; j++) {
                //判断大小
                int result = s.sort(obj[j], obj[j+1]);
                 if (result > 0) {  
                    Object temp = obj[j];
                    obj[j] = obj[j+1];
                    obj[j+1] = temp;
                }
                //交换 
            }
            
        }
        return obj;
    }

}
//用户类
package com.lanou.jk;

import java.util.Arrays;

public class User {
public static void main(String[] args) {
//数据
Cat c = new Cat();
c.age = 12;
c.score = 99;

    Cat c1 = new Cat();
    c1.age = 4;
    c1.score = 55;
    
    Cat c2 = new Cat();
    c2.age = 9;
    c2.score = 88;
    
    Cat c3 = new Cat();
    c3.age = 21;
    c3.score = 85;
        //创建一个数组
        Cat[] arr = {c,c1,c2,c3};
        //创建test接收的类
        com cm= new com();
        Test test = new Test(cm);
        //接收排序的结果
        Object[] newArr = test.paixu(arr);
        //打印输出
        System.out.println(Arrays.toString(newArr));
}

}
//Sort接口的实现类
class com implements Sort {
@Override
public int sort(Object obj, Object obj1) {

        //强转转换类型
        Cat c = (Cat)obj;
        Cat c1 = (Cat)obj1;
        //利用Sort方法进行比较
        if (c.score > c1.score) {
            return 1;
        }   
        return -1;
    }

}
//数据类
class Cat{
int age;
int score;
@Override
public String toString() {
// TODO Auto-generated method stub
return "年龄 = "+ this.age + "分数"+ this.score;
}
}

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 30,616评论 18 399
  • 泛型 对象和实例是一个意思,类与对象的关系就像数据类型和变量一样。 泛型的主要目的之一就是用来指定类(如:容器)要...
    yueyue_projects阅读 456评论 0 0
  • 一. Java基础部分.................................................
    wy_sure阅读 3,328评论 0 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 131,752评论 18 138
  • 江湖仇,鲜血铸。家人亡,满腔怒,誓报仇,亡命徒。闯天下,习杀术,人不死,便不休。十年仇,一朝复。 江湖...
    序小木阅读 231评论 14 21
  • “横眉冷对千夫指,俯首甘为孺子牛。”这是鲁迅先生所创《自嘲》里的诗句。既然鲁迅先生可以“自嘲”,那我就“自夸”一...
    安然无恙_132e阅读 295评论 0 0
  • 偶然看到好友写给她妹妹的日志,忽然想起我这个姐姐是不是做的不太称职呢…… 写给16岁的你,从你背起书包在外求学已经...
    属刺猬的小羊崽阅读 890评论 0 2
  • import re 1.如果pattern是'匹配': 这样看上去没有什么问题。 2.但是如果pattern是'[...
    doverxu阅读 7,133评论 2 2
  • 1 “我爸几次让我跟他出去走走,我赖在床上不起来。不一会同学打电话让我出去玩,我三分钟就麻利收拾好准备出门了。他在...
    青衫recho阅读 1,005评论 0 3