田春婷
摘要:在實際應用中,我們會經(jīng)常需要把集合中的對象進行比較和排序。而Java的JDK給我們提供了兩個很好的接口。實現(xiàn)了比較接口的類可以實現(xiàn)對象之間的比較。該文主要探討Java對象的排序比較方式問題。
關鍵詞:比較;接口;對象
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)34-8163-02
本文所涉及的Java對象的比較問題和所謂的排序算法(希爾排序、冒泡排序、堆排序等)是兩回事,是指執(zhí)行這些排序算法時,比較兩個對象“大小”的比較操作。我們很容易理解如整型數(shù)據(jù)i>j這樣的比較方式,當我們對多個對象比較大小時,如何比較兩個對象(如person1和person2) 的”大小”呢?
Java的JDK為我們提供了兩個接口java.lang. Comparable 和java.util. Comparator[1],用來實現(xiàn)對象之間的比較排序。
1 用Comparable接口實現(xiàn)對象的比較
Comparable接口是屬于java.lang包中的接口,向String和Integer等Java內(nèi)建類提供一定的自然排序方式。Comparable接口適用于一個類有自然順序,即可比較的。假定對象集合是同一類型,該接口允許把集合排序成自然順序。實現(xiàn)Comparable接口需要實現(xiàn)compareTo(Object o)方法,int compareTo(Object o): 比較當前實例對象與對象o,如果位于對象o之前,返回負值,如果兩個對象在排序中位置相同,則返回0,如果位于對象o后面,則返回正值。
下面以對象存儲在ArrayList中為例,實現(xiàn)Person對象的比較問題。
代碼實現(xiàn):
2 用Comparator接口實現(xiàn)對象的比較
參考文獻:
[1] Daniel Liang Y.Java語言程序設計——進階篇[M].李娜,譯.北京:機械工業(yè)出版社,2011:25-26.
[2] Daniel Liang Y.Java語言程序設計——進階篇[M].李娜,譯.北京:機械工業(yè)出版社,2011:18-19.endprint
摘要:在實際應用中,我們會經(jīng)常需要把集合中的對象進行比較和排序。而Java的JDK給我們提供了兩個很好的接口。實現(xiàn)了比較接口的類可以實現(xiàn)對象之間的比較。該文主要探討Java對象的排序比較方式問題。
關鍵詞:比較;接口;對象
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)34-8163-02
本文所涉及的Java對象的比較問題和所謂的排序算法(希爾排序、冒泡排序、堆排序等)是兩回事,是指執(zhí)行這些排序算法時,比較兩個對象“大小”的比較操作。我們很容易理解如整型數(shù)據(jù)i>j這樣的比較方式,當我們對多個對象比較大小時,如何比較兩個對象(如person1和person2) 的”大小”呢?
Java的JDK為我們提供了兩個接口java.lang. Comparable 和java.util. Comparator[1],用來實現(xiàn)對象之間的比較排序。
1 用Comparable接口實現(xiàn)對象的比較
Comparable接口是屬于java.lang包中的接口,向String和Integer等Java內(nèi)建類提供一定的自然排序方式。Comparable接口適用于一個類有自然順序,即可比較的。假定對象集合是同一類型,該接口允許把集合排序成自然順序。實現(xiàn)Comparable接口需要實現(xiàn)compareTo(Object o)方法,int compareTo(Object o): 比較當前實例對象與對象o,如果位于對象o之前,返回負值,如果兩個對象在排序中位置相同,則返回0,如果位于對象o后面,則返回正值。
下面以對象存儲在ArrayList中為例,實現(xiàn)Person對象的比較問題。
代碼實現(xiàn):
2 用Comparator接口實現(xiàn)對象的比較
參考文獻:
[1] Daniel Liang Y.Java語言程序設計——進階篇[M].李娜,譯.北京:機械工業(yè)出版社,2011:25-26.
[2] Daniel Liang Y.Java語言程序設計——進階篇[M].李娜,譯.北京:機械工業(yè)出版社,2011:18-19.endprint
摘要:在實際應用中,我們會經(jīng)常需要把集合中的對象進行比較和排序。而Java的JDK給我們提供了兩個很好的接口。實現(xiàn)了比較接口的類可以實現(xiàn)對象之間的比較。該文主要探討Java對象的排序比較方式問題。
關鍵詞:比較;接口;對象
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)34-8163-02
本文所涉及的Java對象的比較問題和所謂的排序算法(希爾排序、冒泡排序、堆排序等)是兩回事,是指執(zhí)行這些排序算法時,比較兩個對象“大小”的比較操作。我們很容易理解如整型數(shù)據(jù)i>j這樣的比較方式,當我們對多個對象比較大小時,如何比較兩個對象(如person1和person2) 的”大小”呢?
Java的JDK為我們提供了兩個接口java.lang. Comparable 和java.util. Comparator[1],用來實現(xiàn)對象之間的比較排序。
1 用Comparable接口實現(xiàn)對象的比較
Comparable接口是屬于java.lang包中的接口,向String和Integer等Java內(nèi)建類提供一定的自然排序方式。Comparable接口適用于一個類有自然順序,即可比較的。假定對象集合是同一類型,該接口允許把集合排序成自然順序。實現(xiàn)Comparable接口需要實現(xiàn)compareTo(Object o)方法,int compareTo(Object o): 比較當前實例對象與對象o,如果位于對象o之前,返回負值,如果兩個對象在排序中位置相同,則返回0,如果位于對象o后面,則返回正值。
下面以對象存儲在ArrayList中為例,實現(xiàn)Person對象的比較問題。
代碼實現(xiàn):
2 用Comparator接口實現(xiàn)對象的比較
參考文獻:
[1] Daniel Liang Y.Java語言程序設計——進階篇[M].李娜,譯.北京:機械工業(yè)出版社,2011:25-26.
[2] Daniel Liang Y.Java語言程序設計——進階篇[M].李娜,譯.北京:機械工業(yè)出版社,2011:18-19.endprint