`

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  

相关推荐

    2021-2022计算机二级等级考试试题及答案No.17605.docx

    22. TreeSet与Comparable接口:如果没有提供比较器,TreeSet会使用元素实现的`Comparable`接口进行排序。正确答案:正确。 23. 最优排序:在各种排序算法中,堆排序在最坏情况下的比较次数最少。正确答案:D。 24....

    2021-2022计算机二级等级考试试题及答案No.10188.docx

    在Java中,如果向TreeSet添加元素,而未提供自定义比较器,则元素必须实现Comparable接口以进行排序。 6. 第六题是关于嵌套循环的执行次数。外层循环i从0到n-1,内层循环j从i到n-1,所以内层循环S的总执行次数为n*...

    2021-2022计算机二级等级考试试题及答案No.13185.docx

    12. TreeSet 集合:无比较器的TreeSet需要元素实现Comparable接口,以进行排序。 13. SQL 语句:为表添加有效性规则,正确的ALTER TABLE语句格式是B选项所示。 14. 电子邮件协议:SMTP(Simple Mail Transfer ...

    2021-2022计算机二级等级考试试题及答案No.11376.docx

    17. **TreeSet与Comparable**:如果未提供比较器,TreeSet会根据元素实现的Comparable接口来排序元素。 18. **Session属性**:在Java Web开发中,使用`getAttribute`方法可以从session中检索属性值。 19. **输入...

    2021-2022计算机二级等级考试试题及答案No.4961.docx

    12. **TreeSet集合** - 如果没有传入比较器,TreeSet会默认使用元素的自然排序,即要求元素实现Comparable接口。 13. **数据库分类** - 层次型、网状型和关系型数据库的划分依据是数据之间的联系复杂程度。 14. **...

    2021-2022计算机二级等级考试试题及答案No.19870.docx

    15. 如果在Java中创建`TreeSet`而没有提供比较器,集合会默认使用元素实现的`Comparable`接口来排序。 16. 在数据库中,能够唯一标识一个元组(记录)的属性或属性组合被称为关键字或主键。 17. Telnet或远程登录...

    2021-2022计算机二级等级考试试题及答案No.15662.docx

    - TreeSet集合要求存入的元素实现了`Comparable`接口或提供自定义的比较器,以便根据元素的自然顺序或指定顺序对元素进行排序。 以上是对给定文件中知识点的详细解析,涵盖了数据库、计算机内存、编程语言、网络...

    2021-2022计算机二级等级考试试题及答案No.13046.docx

    19. **TreeSet集合与比较器**:如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现`Comparable`接口(正确答案:正确)。这样可以确保集合中的元素能够按照某种顺序进行排序。 ### 字符类型的...

    2021-2022计算机二级等级考试试题及答案No.5248.docx

    6. **TreeSet**:Java中的`TreeSet`是有序的集合,如果没有传入比较器,它会使用元素自然排序,或者元素必须实现`Comparable`接口以进行比较。 7. **交叉表查询**:在数据库中,交叉表查询用于统计不同类别的数据...

    2021-2022计算机二级等级考试试题及答案No.10813.docx

    - `TreeSet`集合内部依赖于元素的排序,如果没有显式提供比较器,则要求元素实现`Comparable`接口以便能够进行排序。 - **结论**: 正确答案为**正确**。 #### 16. Web资源唯一标识 - **题目**: Web上的资源通常...

Global site tag (gtag.js) - Google Analytics