APP下载

Java对象的比较方式

2015-01-06田春婷

电脑知识与技术 2014年34期
关键词:接口比较对象

田春婷

摘要:在实际应用中,我们会经常需要把集合中的对象进行比较和排序。而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

猜你喜欢

接口比较对象
神秘来电
某电站工程设计管理与施工、质量控制接口关系研究
基于熵的快速扫描法的FNEA初始对象的生成方法
同曲异调共流芳
托福听力指南:如何搞定“比较”和“递进”结构的讲座题
区间对象族的可镇定性分析