1. 要求
对象student(id,name,sex,scroe,old);先按scroe排序,当scroe值相同时按old排序
2.解决办法,通过Arrays.sort(Object[])静态方法实现,但是对象需要实现Comparable
3.studen.java
public class Student implements Comparable {
private Integer id;
private String name;
private String sex;
private double score;
private Integer old;
public Student(Integer _id,String _name,String _sex,double _score,Integer _old){
this.setId(_id);
this.setName(_name);
this.setSex(_sex);
this.setScore(_score);
this.setOld(_old);
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public Integer getOld() {
return old;
}
public void setOld(Integer old) {
this.old = old;
}
@Override
public int compareTo(Object o) {
Student others = (Student) o;
if (this.score > others.score)
return -1;
else if (this.score == others.score) {
if (this.old > others.old)
return -1;
else if (this.old == others.old)
return 0;
else
return 1;
} else
return 1;
}
}
说明:compareTo(Object o) 根据jdk API是
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
4.测试类StudentSortDemo.java
public class StudentSortDemo {
public static void main(String[] args) {
Student[] student = {
new Student(1,"Daffy","m",88, 23),
new Student(2,"Dewey","w",69, 44),
new Student(3,"Howard","m",66, 32),
new Student(4,"Louie","w",78, 25),
new Student(5,"Donald","m",69, 30),
new Student(6,"Huey","w",55, 24)
};
System.out.println("Before sorting:");
display(student);
Arrays.sort(student);
System.out.println("\nAfter sorting:");
display(student);
}
public static void display(Student[] student){
for (int i = 0; i < student.length; i++) {
System.out.println("name:" + student[i].getName()+",score:"+student[i].getScore()+",old:"+student[i].getOld());
}
}
}
输出结果为:
Before sorting:
name:Daffy,score:88.0,old:23
name:Dewey,score:69.0,old:44
name:Howard,score:66.0,old:32
name:Louie,score:78.0,old:25
name:Donald,score:69.0,old:30
name:Huey,score:55.0,old:24
After sorting:
name:Daffy,score:88.0,old:23
name:Louie,score:78.0,old:25
name:Dewey,score:69.0,old:44
name:Donald,score:69.0,old:30
name:Howard,score:66.0,old:32
name:Huey,score:55.0,old:24
分享到:
相关推荐
此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行...
知道实现比较器(Comparable,Comparator)用于排序算法(多态性)。 [*]了解同步包装和不可修改包装。 第12章 IO与串行化 2课时 了解Java IO 中类的层次结构,介绍Java IO采用的装饰...
Comparable和Comparator接口都可用作普通意义上对象间的比大小,但两个接口在实例化方面的用法不尽相同,接下来我们就来详细对比Java中的Comparable排序接口和Comparator比较器接口
{1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...
要注意的是List,Set,Queue继承了Collection接口,...这里想用一个简单的例子展示一下他们的使用,内容包括:List、Map、Set、Queue,Collections、Comparable与Comparator,排序、搜索,内部类,泛型、重写equals、hashCode
如果要按照某一个属性来对这个对象数组进行升序或降序排序,那么就需要用Arrays.sort(),但是这个创建的类一定要继承Comparable这个接口并重写compareTo方法。代码如下: package 排序; import java.util.Arrays; ...
哈希值 LinkedHashSet TreeSet 自然排序Comparable 比较器排序Comparator Set集合 并发修改异常 LinkedList集合 ArrayList集合 List集合 Collection集合概述 冒泡排序 Object 异常 Math 包装类 Calendar类 ...
可以通过两种方式自定义对象的属性大小进行比较,对一个list或数组对根据属性排序一个list或数组
它是使用Comparator对象构造的,该对象可以将两个对象进行比较,从而使SortedList可以将其元素按升序或降序排序。 当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法...
031113_【第11章:Java常用类库】_比较器(Comparable、Comparator)笔记.pdf 031114_【第11章:Java常用类库】_观察者设计模式笔记.pdf 031115_【第11章:Java常用类库】_正则表达式笔记.pdf 031116_【第11章:Java...
实例056 Java对象的深克隆 82 实例057 序列化与对象克隆 84 实例058 深克隆效率的比较 87 第7章 面向对象进阶 89 实例059 经理与员工的差异 90 实例060 重写父类中的方法 92 实例061 计算几何图形的面积 93 实例062 ...
* 方法: public PockerCard() //无参构造函数: 创建牌的集合、创建两个角色对象 * public void initializeCard() //创建整幅扑克牌 * public void showCard() //显示单支牌的花色和点数 * public void ...
简单的用于页面表单排序的后台方法,通过实现Comparable轻松搞定
而在Java类库中有一个Arrays类的sort方法已经实现各种数据类型的排序算法。程序员只需要调用该类的方法即可。 代码演示:Arrays实现排序 public static void main(String[] args) { int[] ages={23, 45,12,76,34,...
最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...
JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象...
实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。 此 接口只有一个方法...
·实战teratori迭代器和自定义Comparable:排序接口 ·玩转ava操作文件File类常用操作 ·案例实战IO流Input、Output Stream流 ·详细常见Object、Math、String等核心类 ·掌握枚举Enum和时间日期LocalDate使用 ·面试...
java提供了一个Comparable接口,该接口里定义了一个compareTo(Objectobj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行...
数组 一维数组、数组参数、数组返回值、数组增删、扩容、排序、二维数组 chp6.面向对象 类和对象、实例变量、构造方法、方法重载、引用的概念、this关键字 chp7.面向对象三大特性 封装、继承、多态、对象创建过程、...