`

java用比较器comparable接口实现类似excel排序

阅读更多

题目要求:设计一个学生类,此类包含姓名、年龄、成绩,并产生一个对象数组,要求按成绩由高到低排序,如果成绩相等,则按年龄由低到高排序。

在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

分享到:
评论
1 楼 tangzlboy 2012-05-14  

相关推荐

    Comparable接口实现字符串比较大小排序的简单实例

    java通过Comparable接口实现字符串比较大小排序的简单实例

    java,Comparable接口实例

    实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。 强烈推荐(虽然不是必需的)使自然排序与 equals 一致。所谓与equals一致是指对于类 C 的每一个 e1 和 e2 来说,当且仅当 (e1....

    对比Java中的Comparable排序接口和Comparator比较器接口

    Comparable和Comparator接口都可用作普通意义上对象间的比大小,但两个接口在实例化方面的用法不尽相同,接下来我们就来详细对比Java中的Comparable排序接口和Comparator比较器接口

    java比较器Comparable接口与Comaprator接口的深入分析

    本篇文章是对java比较器Comparable接口与Comaprator接口进行了详细的分析介绍,需要的朋友参考下

    各种排序算法比较(java实现)

    实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。

    常见排序算法的实现与性能比较JAVA版

    常见排序算法的实现与性能比较JAVA 问题描述:实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法 实验要求: A. 在随机产生的空间大小分别为 N = 10, 1000,10000,100000 的排序样本(取值为[0...

    Java Excel比较代码 poi

    用java写的一个Excel比较工具用来比较两张相同报表内是否存在不同数据,如果存在或在Excel中有显示,jar自己官网去下

    Java实现六种常用排序(含源代码)

    Java实现六种常用排序 并用多线程进行速度比较(其实意义不大) 含有代码

    java文本比较器.rar

    java文本比较器 可比较两Java文件有何异同 1vv

    浅析Java中comparator接口与Comparable接口的区别

    本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧

    用JAVA实现3个数排序

    用JAVA实现的排序额 学JAVA 小试身手

    Comparable接口和Comparator接口的比较

    Comparable是 排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作...

    java写的基于比较的各种排序算法

    java写的基于比较的各种排序算法,都是一个一个的小函数。简单排序包括:选择排序,插入排序,折半插入排序,冒泡排序。 分治思想的排序包括:归并排序,快速排序,堆排序。 程序把随机生成的整数进行排序,开始时用...

    八大排序-java实现版

    八大排序java实现版本,直接插入排序、折半插入排序、冒泡排序、简单选择排序、希尔插入排序、快速排序 、堆排序、2-路归并排序 、基数排序,并有时间比较,博文...

    java Lucene 中自定义排序的实现

    Lucene中的自定义排序功能和Java集合中的自定义排序的实现方法差不多,都要实现一下比较接口. 在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在...

    Java自定义比较器实现中文排序

    主要介绍了Java自定义比较器实现中文排序,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Java 比较接口comparable与comparator区别解析

    主要介绍了Java 比较接口comparable与comparator区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    JAVA 比较器实例

    在项目过程中,常会用到比较器,比较器也确实是个不错的工具,好用,值得去用.一个简单的例子,供大家学习.

    java实现mysql数据库的表导出到excel文件

    java实现mysql数据库的表导出到excel文件,已经基本的demo包含jar包,可以导入的eclipse里面。比较好用吧

    java实现页面表格数据输出到excel

    比较常用 * 这是一个通用的方法,利用了JAVA的反射机制, * 可以将放置在JAVA集合中并且符合一定条件的数据以EXCEL的形式输 出到指定IO设备上 * @param title 表格标题名 * @param headers 表格属性列名数组 ...

Global site tag (gtag.js) - Google Analytics