题目要求:设计一个学生类,此类包含姓名、年龄、成绩,并产生一个对象数组,要求按成绩由高到低排序,如果成绩相等,则按年龄由低到高排序。
在java中有个排序sort可以调用此函数来实现。arrays类中的sort可以对任意类型的数组排序,当然可以对object数组排序,要求是该对象数组必须实现comparable接口。
public interface Comparable<T>{
public int compareTo(T o);
}
compareTo方法返回一个int类型
+++1:表示大于
+++-1:表示小于
+++0:表示等于
运用比较器进行排序实现代码
package ch11;
import java.util.Arrays;
/**
* @author 作者 bin
* @version 创建时间:2011-1-20 下午09:22:32
* 类说明
*/
class Student implements Comparable<Student>{
private String name;
private int age;
private float score;
public int compareTo(Student student){
if(this.score>student.score){
return -1;
}else if(this.score<student.score){
return 1;
}else{
if(this.age>student.age){
return 1;
}else if(this.age<student.age){
return -1;
}else{
return 0;
}
}
}
public Student(String name,int age,float score){
this.name = name;
this.age = age;
this.score = score;
}
public String toString(){
return name+"\t\t"+age+"\t\t"+score;
}
}
public class MyComparable {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student[] stu ={
new Student("胡斌",22,98),
new Student("张三",22,93),
new Student("李四",20,93),
new Student("王五",22,100),
new Student("tao哥",21,77),
new Student("jia宝",53,(float) 69.5),
};
Arrays.sort(stu);
for(int i =0;i<6;i++){
System.out.println(stu[i]);
}
}
}
运行结果:
王五 22 100.0
胡斌 22 98.0
李四 20 93.0
张三 22 93.0
tao哥 21 77.0
jia宝 53 69.5
分享到:
相关推荐
java通过Comparable接口实现字符串比较大小排序的简单实例
实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。 强烈推荐(虽然不是必需的)使自然排序与 equals 一致。所谓与equals一致是指对于类 C 的每一个 e1 和 e2 来说,当且仅当 (e1....
Comparable和Comparator接口都可用作普通意义上对象间的比大小,但两个接口在实例化方面的用法不尽相同,接下来我们就来详细对比Java中的Comparable排序接口和Comparator比较器接口
本篇文章是对java比较器Comparable接口与Comaprator接口进行了详细的分析介绍,需要的朋友参考下
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
常见排序算法的实现与性能比较JAVA 问题描述:实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法 实验要求: A. 在随机产生的空间大小分别为 N = 10, 1000,10000,100000 的排序样本(取值为[0...
用java写的一个Excel比较工具用来比较两张相同报表内是否存在不同数据,如果存在或在Excel中有显示,jar自己官网去下
Java实现六种常用排序 并用多线程进行速度比较(其实意义不大) 含有代码
java文本比较器 可比较两Java文件有何异同 1vv
本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧
用JAVA实现的排序额 学JAVA 小试身手
Comparable是 排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作...
java写的基于比较的各种排序算法,都是一个一个的小函数。简单排序包括:选择排序,插入排序,折半插入排序,冒泡排序。 分治思想的排序包括:归并排序,快速排序,堆排序。 程序把随机生成的整数进行排序,开始时用...
八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...
Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在...
主要介绍了Java自定义比较器实现中文排序,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了Java 比较接口comparable与comparator区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在项目过程中,常会用到比较器,比较器也确实是个不错的工具,好用,值得去用.一个简单的例子,供大家学习.
java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧
比较常用 * 这是一个通用的方法,利用了JAVA的反射机制, * 可以将放置在JAVA集合中并且符合一定条件的数据以EXCEL的形式输 出到指定IO设备上 * @param title 表格标题名 * @param headers 表格属性列名数组 ...