Java —— Comparable 接口
来源:互联网 发布:python模块化编程实例 编辑:程序博客网 时间:2024/06/08 16:35
一、Comparable 接口
作用:定义了一个类的两个实例比较大小的方法,以用于排序。
定义:
所在包:java.lang
具体定义:
interface Comparable<T>{int compareTo(T o);}
compareTo 方法说明:
1、返回一个负整数、0或正整数以表明当前的对象小于、等于或大于对象o。此方法要保证判断a>b,b>c,则a>c,判断a>b,则b<a等等。
2、compareTo 方法,用于规定两个实例的自然顺序,用于Arrays.sort 或Collections.sort 方法对数组对象或List 对象进行排序。实践:
class Student implements Comparable{private String name="";private int age;public Student(String name,int age){this.name=name;this.age=age;}@Overridepublic int compareTo(Object o) {int result=this.age-((Student) o).getAge();return result;}public int getAge(){return age;}//重写toString方法,实现特定输出public String toString(){return this.name+":"+this.age;}}public class Main {public static void main(String[] args){Student wei=new Student("小韦",22);Student zheng=new Student("小郑",21);Student xia=new Student("小夏",21);//System.out.print(wei > zheng);并不能直接比较//对List 或 Array 对象,可通过Collections.sort(List对象) 与Arrays.sort(数组对象)方法//调用对象的compareTo 方法排序Student[] stu=new Student[2];stu[0]=wei;stu[1]=zheng;Arrays.sort(stu);System.out.print(stu[0]);//输出结果为:"小郑:21"而非添加时的第一个元素System.out.print(zheng.equals(xia));//输出结果为:false,可见Comparable接口与equals//没有必然联系,但equals 值为true时,必须保证compareTo 值为0 。(可忽略)}}普通的对象是无法排序的,通过实现Comparable 接口规定排序规则。之后,通过Arrays.sort 或Collections.sort 方法排序。
注:java 中的基本数据类型对应对象、Date、Year、Month、Time、DayOfWeek 等多数类都实现了此接口。
参考:http://blog.csdn.net/nvd11/article/details/27393445
0 0
- Java —— Comparable 接口
- Java学习提要——Comparable接口
- JAVA学习笔记——Comparable 接口
- JAVA Comparable接口应用
- java.lang.Comparable接口
- java.lang.Comparable接口
- java.lang.Comparable 接口
- java的comparable 接口
- Java Comparable接口详解
- Java comparable接口
- java中Comparable接口
- java Comparable 接口
- 【java】Comparable接口
- Java Comparable 接口
- Java Comparable 接口
- JAVA笔记40——引用类型比较1:内置数据类型比较+comparable接口+comparator接口
- java的Comparable&Comparator 接口
- java.lang.Comparable 接口 详解
- ORACLE触发器详解
- ubuntu16.04配置caffe2(仅cpu)
- 简单的谈一下SpringMVC的工作流程
- Oracle 11g RAC 安装数据库软件找不到节点的解决
- 安卓eclipse项目转as步骤
- Java —— Comparable 接口
- Java IO流之普通文件流和随机读写流区别
- jQuery中,$.extend()、$.fn、$.fn.extend()什么意思?
- zoj 3963 Heap Partition 贪心+upper_bound()
- 知识贴:电子面单与传统面单的区别
- maven多环境打war包,指定war不带版本号
- SQL Server 使用作业设置定时任务之一
- linux服务器沦陷为肉鸡的全过程
- Jquery(九)子元素过滤