java比较器(1)
来源:互联网 发布:sql中多个case when 编辑:程序博客网 时间:2024/06/05 22:42
可以直接用Arrays进行数组的排序操作,但对象所在的类必须实现Comparable
Comparable<T>{
comparaTo<T o>();
}
注释:此方法返回一个int类型的数据,此数据只能为三个值:1(表示大于),-1(表示小于),0(表示等于)
package com.compara;import java.util.Arrays;public class ComparableDemo01 {public static void main(String[] args) {Student[] stu = {new Student("张三",50,90.0f),new Student("李四",40,93.0f),new Student("王五",30,94.0f)};Arrays.sort(stu);for (int i = 0; i < stu.length; i++) {System.out.println(stu[i].toString());}}}/** * 继承Comparable * @author Administrator *description:先比较得分,年龄相同的按照年龄比较 */class Student implements Comparable<Student>{private String name;private int age;private float score;public Student(String name, int age,float score){this.name = name;this.age = age;this.score = score;}/** * 重写数组的toString()方法 */public String toString(){return name + "\t\t" + this.age + "\t\t" + this.score;}@Overridepublic int compareTo(Student o) {//重写compareTo方法if(this.score > o.score){return 1;}else if(this.score > o.score){return -1;}else {if(this.age > o.age){return 1;}else if (this.age < o.age){return -1;}else{return 0;}}}}通过修改返回1还是-1就可以实现对student数组的排序。
原理:比较器的排序就是二叉树的排序算法。排序的基本原理,使用第一个元素作为根节点,如果后面的内容比根节点要小,则
放在左子树,如果比根节点要大,则放在右子树。最后遍历节点得到从左到右、从小到大的排序结果。如下图所示:
- java比较器(1)
- java 比较器
- java比较器Comparator
- JAVA 比较器
- java比较器(2)
- java比较器(3)
- java-----集合比较器
- JAVA实现比较器
- java中的比较器
- Java自学--比较器
- Java 比较器 comparator
- Java比较器
- java比较器
- JAVA 比较器使用
- Java-对象比较器
- Java中的比较器
- java比较器Comparator
- 关于java比较器
- android的几种动画
- 关于编译错误:"_OBJC_CLASS_$_XXXXXX", referenced from:
- DotNet反射赋值出现的问题
- cout double 精度问题
- 人民币与美元转换
- java比较器(1)
- Boost 智能指针错误shared_ptr Assertion px != 0 failed
- 关于网站备案相关流程
- 第三次课堂作业
- xcode 静态库资源文件及xib封装
- asp.net 面试题目
- Sourcery CodeBench Lite for IA32 GNU/Linux
- PHP执行程序进度条demo程序 于2013.03.26 10.30.00更新
- 我常用的makefile之产生优秀的.depend文件