Java对象的比较方式
2015-01-06田春婷
田春婷
摘要:在实际应用中,我们会经常需要把集合中的对象进行比较和排序。而Java的JDK給我们提供了两个很好的接口。实现了比较接口的类可以实现对象之间的比较。该文主要探讨Java对象的排序比较方式问题。
关键词:比较;接口;对象
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)34-8163-02
本文所涉及的Java对象的比较问题和所谓的排序算法(希尔排序、冒泡排序、堆排序等)是两回事,是指执行这些排序算法时,比较两个对象“大小”的比较操作。我们很容易理解如整型数据i>j这样的比较方式,当我们对多个对象比较大小时,如何比较两个对象(如person1和person2) 的”大小”呢?
Java的JDK为我们提供了两个接口java.lang. Comparable 和java.util. Comparator[1],用来实现对象之间的比较排序。
1 用Comparable接口实现对象的比较
Comparable接口是属于java.lang包中的接口,向String和Integer等Java内建类提供一定的自然排序方式。Comparable接口适用于一个类有自然顺序,即可比较的。假定对象集合是同一类型,该接口允许把集合排序成自然顺序。实现Comparable接口需要实现compareTo(Object o)方法,int compareTo(Object o): 比较当前实例对象与对象o,如果位于对象o之前,返回负值,如果两个对象在排序中位置相同,则返回0,如果位于对象o后面,则返回正值。
下面以对象存储在ArrayList中为例,实现Person对象的比较问题。
代码实现:
2 用Comparator接口实现对象的比较
参考文献:
[1] Daniel Liang Y.Java语言程序设计——进阶篇[M].李娜,译.北京:机械工业出版社,2011:25-26.
[2] Daniel Liang Y.Java语言程序设计——进阶篇[M].李娜,译.北京:机械工业出版社,2011:18-19.endprint
摘要:在实际应用中,我们会经常需要把集合中的对象进行比较和排序。而Java的JDK給我们提供了两个很好的接口。实现了比较接口的类可以实现对象之间的比较。该文主要探讨Java对象的排序比较方式问题。
关键词:比较;接口;对象
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)34-8163-02
本文所涉及的Java对象的比较问题和所谓的排序算法(希尔排序、冒泡排序、堆排序等)是两回事,是指执行这些排序算法时,比较两个对象“大小”的比较操作。我们很容易理解如整型数据i>j这样的比较方式,当我们对多个对象比较大小时,如何比较两个对象(如person1和person2) 的”大小”呢?
Java的JDK为我们提供了两个接口java.lang. Comparable 和java.util. Comparator[1],用来实现对象之间的比较排序。
1 用Comparable接口实现对象的比较
Comparable接口是属于java.lang包中的接口,向String和Integer等Java内建类提供一定的自然排序方式。Comparable接口适用于一个类有自然顺序,即可比较的。假定对象集合是同一类型,该接口允许把集合排序成自然顺序。实现Comparable接口需要实现compareTo(Object o)方法,int compareTo(Object o): 比较当前实例对象与对象o,如果位于对象o之前,返回负值,如果两个对象在排序中位置相同,则返回0,如果位于对象o后面,则返回正值。
下面以对象存储在ArrayList中为例,实现Person对象的比较问题。
代码实现:
2 用Comparator接口实现对象的比较
参考文献:
[1] Daniel Liang Y.Java语言程序设计——进阶篇[M].李娜,译.北京:机械工业出版社,2011:25-26.
[2] Daniel Liang Y.Java语言程序设计——进阶篇[M].李娜,译.北京:机械工业出版社,2011:18-19.endprint
摘要:在实际应用中,我们会经常需要把集合中的对象进行比较和排序。而Java的JDK給我们提供了两个很好的接口。实现了比较接口的类可以实现对象之间的比较。该文主要探讨Java对象的排序比较方式问题。
关键词:比较;接口;对象
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)34-8163-02
本文所涉及的Java对象的比较问题和所谓的排序算法(希尔排序、冒泡排序、堆排序等)是两回事,是指执行这些排序算法时,比较两个对象“大小”的比较操作。我们很容易理解如整型数据i>j这样的比较方式,当我们对多个对象比较大小时,如何比较两个对象(如person1和person2) 的”大小”呢?
Java的JDK为我们提供了两个接口java.lang. Comparable 和java.util. Comparator[1],用来实现对象之间的比较排序。
1 用Comparable接口实现对象的比较
Comparable接口是属于java.lang包中的接口,向String和Integer等Java内建类提供一定的自然排序方式。Comparable接口适用于一个类有自然顺序,即可比较的。假定对象集合是同一类型,该接口允许把集合排序成自然顺序。实现Comparable接口需要实现compareTo(Object o)方法,int compareTo(Object o): 比较当前实例对象与对象o,如果位于对象o之前,返回负值,如果两个对象在排序中位置相同,则返回0,如果位于对象o后面,则返回正值。
下面以对象存储在ArrayList中为例,实现Person对象的比较问题。
代码实现:
2 用Comparator接口实现对象的比较
参考文献:
[1] Daniel Liang Y.Java语言程序设计——进阶篇[M].李娜,译.北京:机械工业出版社,2011:25-26.
[2] Daniel Liang Y.Java语言程序设计——进阶篇[M].李娜,译.北京:机械工业出版社,2011:18-19.endprint