自定义类比较大小以及按照规则排序。
2016-05-30 19:57
471 查看
我们在开发的时候会创建许多对象,而这些对象有时候可能需要排序,排序就需要比较大小,但是java没有提供比较自定义对象大小的方法,所以需要我们自己实现。
实现比较自定义对象有两种方法,实现接口Comparable或者Comparator,今天我根据我自己的理解讲讲如何实现Comparable接口来比较自定义对象的大小。
第一步:自定义Person类,并且实现接口Comparable,并且重写接口中的方法 public int compareTo(Object obj)。
实现比较自定义对象有两种方法,实现接口Comparable或者Comparator,今天我根据我自己的理解讲讲如何实现Comparable接口来比较自定义对象的大小。
第一步:自定义Person类,并且实现接口Comparable,并且重写接口中的方法 public int compareTo(Object obj)。
class Person implements Comparable { private int age; //假设对象根据年龄比较大小,且排序顺序为降序。 @override public int compareTo(Object obj){ //异常判断 if(null == o){ throw new NullPointerException("所比较对象不能为空"); } Person p = (Person)o; return obj.age - this.age; } }
第二步:外部调用
public static void main(String[] args){ Person p1 = new Person(4); Person p2 = new Person(6); Person p3 = new Person(1); Person[] ps = new Person[3]; ps[0] = p1; ps[1] = p2; ps[2] = p3; //如果使用系统自带的排序方法,就必须要实现Comparable接口。 Array.sort(ps); }
相关文章推荐
- 第十二周项目三:Time类中的运算符重载
- Easy-题目14:235.Lowest Common Ancestor of a Binary Search Tree
- 结构体和枚举
- 安装redis和php的redis扩展
- 第33章 :计算几何学
- 几种常用的css三角形
- Perl 处理日期的自定义函数
- 从Android代码中来记忆23种设计模式
- HDU 2020 绝对值排序
- [JavaScript] 8.JS BOM对象
- [JZOJ3401]Pty爬山/[2013年集训队论文答辩]登顶计划
- 安卓手机测试中几个批处理小脚本
- Easy-题目13:13. Roman to Integer
- CodeForces 653 A. Bear and Three Balls(数学 ,快排)
- 第二次冲刺个人工作总结06
- Light OJ 1064 - Throwing Dice
- web.xml中classpath和classpath*的区别
- Easy-题目12:206. Reverse Linked List
- (SRCNN)Image super-resolution using deep convolutional networks
- [bzoj1458]士兵占领