对接口 Comparable<T>中1、0、-1的理解
2016-05-16 08:16
411 查看
如下所示的源码:To)
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。参数:
如果指定对象的类型不允许它与此对象进行比较。我觉得实现接口中定义的compareTo()方法,更重要的一点是为了执行sort()方法进行自动排序.如下是Test测试源码:
packagetwoJeHe;
publicclassEmployeeimplementsComparable<Employee>{
privateintid;
privateStringname;
privateintage;
publicEmployee(intid,Stringname,intage){
this.id=id;
this.name=name;
this.age=age;
}
publicintcompareTo(Employeeo){//为了实现Test类中的sort方法
if(id>o.id){
return1;//大于
}elseif(id<o.id){
return-1;//小于
}
return0;//等于
}
publicStringtoString(){//重写toString方法
StringBuildersb=newStringBuilder();
sb.append("员工的编号"+id+",");
sb.append("员工的姓名"+name+",");
sb.append("员工的年龄"+age);
returnsb.toString();
}
}API中的解释如下:intcompareTo(
比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。参数:
o-要比较的对象。返回:负整数、零或正整数,根据此对象是小于、等于还是大于指定对象。抛出:
-ClassCastException
如果指定对象的类型不允许它与此对象进行比较。我觉得实现接口中定义的compareTo()方法,更重要的一点是为了执行sort()方法进行自动排序.如下是Test测试源码:
packagetwoJeHe;
importjava.awt.List;
importjava.util.ArrayList;
importjava.util.Collection;
importjava.util.Collections;
publicclassTest{
publicstaticvoidmain(String[]args){
//List<Employee>list=newArrayList<Employee>();
ArrayList<Employee>list=newArrayList<Employee>();
list.add(newEmployee(3,"Lester",21));
list.add(newEmployee(2,"Jimmy",22));
list.add(newEmployee(3,"Bobby",23));
System.out.println("排序前:");
for(Employeeemployee:list){
System.out.println(employee);
}
System.out.println("排序后:");
Collections.sort(list);//自动排序
for(Employeeemployee:list){
System.out.println(employee);
}
}
}
相关文章推荐
- 阅读程序并写出执行结果
- DP 动态规划 Problem D 1004 丑数
- 【转】我害怕阅读的人
- Java多线程编程核心技术---对象及变量的并发访问(一)
- 体育新闻解析+ListView展示
- 基于接口实现匿名内部类的注意事项
- [git]git的基本原理|git branch|git
- 排序算法分析(二)
- Android中SharedPreferences 工具类的使用
- C语言 逆序显示文本内容并保存
- PAT-Java-1019. 数字黑洞 (20)
- 多线程(-)概念
- linux centos6.5下mysql 数据库的源码安装
- git合并分支
- HDR功能预研
- xml解析
- linux中使用yum进行软件的安装
- 关于耗时操作的处理方式猜想/我所用到的队列操作
- LVS & Nginx 的区别与优缺
- Android中OKHttp框架的使用