题目要求:设计一个学生类,此类包含姓名、年龄、成绩,并产生一个对象数组,要求按成绩由高到低排序,如果成绩相等,则按年龄由低到高排序。
在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
分享到:
相关推荐
22. TreeSet与Comparable接口:如果没有提供比较器,TreeSet会使用元素实现的`Comparable`接口进行排序。正确答案:正确。 23. 最优排序:在各种排序算法中,堆排序在最坏情况下的比较次数最少。正确答案:D。 24....
在Java中,如果向TreeSet添加元素,而未提供自定义比较器,则元素必须实现Comparable接口以进行排序。 6. 第六题是关于嵌套循环的执行次数。外层循环i从0到n-1,内层循环j从i到n-1,所以内层循环S的总执行次数为n*...
12. TreeSet 集合:无比较器的TreeSet需要元素实现Comparable接口,以进行排序。 13. SQL 语句:为表添加有效性规则,正确的ALTER TABLE语句格式是B选项所示。 14. 电子邮件协议:SMTP(Simple Mail Transfer ...
17. **TreeSet与Comparable**:如果未提供比较器,TreeSet会根据元素实现的Comparable接口来排序元素。 18. **Session属性**:在Java Web开发中,使用`getAttribute`方法可以从session中检索属性值。 19. **输入...
12. **TreeSet集合** - 如果没有传入比较器,TreeSet会默认使用元素的自然排序,即要求元素实现Comparable接口。 13. **数据库分类** - 层次型、网状型和关系型数据库的划分依据是数据之间的联系复杂程度。 14. **...
15. 如果在Java中创建`TreeSet`而没有提供比较器,集合会默认使用元素实现的`Comparable`接口来排序。 16. 在数据库中,能够唯一标识一个元组(记录)的属性或属性组合被称为关键字或主键。 17. Telnet或远程登录...
- TreeSet集合要求存入的元素实现了`Comparable`接口或提供自定义的比较器,以便根据元素的自然顺序或指定顺序对元素进行排序。 以上是对给定文件中知识点的详细解析,涵盖了数据库、计算机内存、编程语言、网络...
19. **TreeSet集合与比较器**:如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现`Comparable`接口(正确答案:正确)。这样可以确保集合中的元素能够按照某种顺序进行排序。 ### 字符类型的...
6. **TreeSet**:Java中的`TreeSet`是有序的集合,如果没有传入比较器,它会使用元素自然排序,或者元素必须实现`Comparable`接口以进行比较。 7. **交叉表查询**:在数据库中,交叉表查询用于统计不同类别的数据...
- `TreeSet`集合内部依赖于元素的排序,如果没有显式提供比较器,则要求元素实现`Comparable`接口以便能够进行排序。 - **结论**: 正确答案为**正确**。 #### 16. Web资源唯一标识 - **题目**: Web上的资源通常...