算法-比較數據

應用場景

1.比較2個數據的大小
比較大小
2.比較多個數據的大小
排序html

比較2個數據的大小

1.比較數值
8個基本數據類型,除了char和boolean,其餘6個都是比較數值的大小。java

如何比較呢?一減就知道了,比較2個數值的算法就是作減法。算法

2.比較字符和字符串
1)字符char
字符是按字典順序進行比較的。工具

具體代碼實現是比較字符的unicode編碼。字符的unicode編碼就是按字典順序進行編碼的,小寫字母abcd...排在前面,大寫字母ABCD...排在後面。編碼

比較2個字符的算法,就是比較字符的unicode編碼。code

2)字符串String
和比較字符的大小同樣,只不過比較字符串的算法,是先比較第一個字符的大小,而後依次比較後面字符的大小。htm

比較多個數據的大小

要對多個數據的大小進行比較,通常就是排序咯。
排序的算法有不少種,不過無論是哪種算法,相同點都是基於每兩個數據、每兩個數據比較的。blog

java是如何比較數據的

1.基本數據類型
6種數值類和char,都是用if和操做符(大於、小於、等於)來實現的。排序

2.類接口

1.6種數值類型的包裝類
  2.基本數據類型char的包裝類Character
  3.字符串類String
  4.自定義類

以上4種不一樣類型的類,都是經過實現比較接口Comparable來實現比較功能的。比較接口Comparable,只有一個比較方法compareTo,任何類想要實現比較的功能,必須實現比較接口的比較方法。

一、二、3裏的類,都實現了比較接口的比較方法。

咱們本身寫的類,若是想要實現比較的功能,也必須實現比較接口的比較方法。

3.排序
工具類Collections和Arrays的排序方法sort,採用的算法是合併排序,在排序的過程中進行兩兩比較時,就是利用每一個類的比較方法進行比較的。

java比較類數據的另外一種方法

在java裏,提供了2種方法來比較類數據:
1.實現比較接口Comparable的比較方法
待比較的數據類,實現比較接口的比較方法。正如上面介紹的那樣。

比較接口Comparable是可比較的意思,若是一個類實現了可比較接口,那麼這個類就是可比較的。

對於全部有比較需求的類,都應該去實現這個接口。
2.實現比較器接口Comparator的比較方法
若是一個類有比較的需求,而且只按類的一個字段進行比較(好比,日期字段),那麼能夠實現比較接口Comparable。當前,也能夠實現比較器接口,只不過多了個類而已。這2種方法沒有任何區別。

若是一個類有比較的需求,而且可能須要按多個字段進行比較(好比,日期字段、名字字段、年齡字段等),這個時候,實現比較器接口比較好,具體來講,就是新建一個自定義比較器類(好比,StudentSortByDate、StudentSortByName、StudentSortByAge等)實現比較器接口。

比較大小compareTo和比較相等equals

參考

http://www.importnew.com/1743...
http://www.importnew.com/1721...
http://www.importnew.com/1070...
http://www.importnew.com/2264...
http://www.importnew.com/1925...
http://www.importnew.com/1764...
http://www.cnblogs.com/skywan...

相關文章
相關標籤/搜索