當前位置:首頁 » 編程語言 » comparejava

comparejava

發布時間: 2025-03-24 16:18:27

java中comparator和compare它們兩個是按照從大到小排序的還是從小到大排序的

comparator是個比較器介面,實現這個介面可以自己定義一個排序方式
compare是一個方法,你要定義一個排序必須重寫這個方法
有很多比較器,一般默認字典順序

❷ java的compareTo方法運行的原理

compareTo方法原理:先讀取出字元串的第一個「字母」進行比較,比較的方法是ascii碼表的值(字元所對應的十進制值),如果前面的大那麼返回1,後面的大返回-1;此位置相同,繼續比較下一位,直到最後一位,如果都相同的話,就返回0;

舉例:
int cc= "13".compareTo("12");
System.out.println(cc);
int dd= "11".compareTo("12");
System.out.println(cc);
int dd= "aaa".compareTo("aaa");
System.out.println(cc);
結果就是:1(換行) -1(換行)0。

❸ Java中的compareTo()函數是怎麼用的

compareTo() 方法用於將 Number 對象與方法的參數進行比較。可用於比較 Byte, Long, Integer等。該方法用於兩個相同數據類型的比較,兩個不同類型的數據不能用此方法來比較。

語法

public int compareTo( NumberSubClass referenceName )

參數

referenceName-- 可以是一個 Byte, Double, Integer, Float, Long 或 Short 類型的參數。

返回值

1、如果指定的數與參數相等返回0。

2、如果指定的數小於參數返回 -1。

3、如果指定的數大於參數返回 1。

Java中的compareTo()函數用法比較另一個函數字元:public int compareTo(String anotherString)

按字典順序比較兩個字元串。該比較基於字元串中各個字元的 Unicode 值。將此 String 對象表示的字元序列與參數字元串所表示的字元序列進行比較。如果按字典順序此 String 對象在參數字元串之前,則比較結果為一個負整數。

如果按字典順序此 String 對象位於參數字元串之後,則比較結果為一個正整數。如果這兩個字元串相等,則結果為 0;compareTo 只有在方法 equals(Object) 返回 true 時才返回 0。

這是字典排序的定義。如果這兩個字元串不同,則要麼它們在某個索引處具有不同的字元,該索引對二者均為有效索引,要麼它們的長度不同,或者同時具備上述兩種情況。

如果它們在一個或多個索引位置上具有不同的字元,假設 k 是這類索引的最小值;則按照 < 運算符確定的那個字元串在位置 k 上具有較小的值,其字典順序在其他字元串之前。

這種情況下,compareTo 返回這兩個字元串在位置 k 處的兩個不同的 char 值,即值:

this.charAt(k)-anotherString.charAt(k)

如果它們沒有不同的索引位置,則較短字元串在字典順序上位於較長字元串的前面。這種情況下,compareTo 返回這兩個字元串長度的不同,即值:

this.length()-anotherString.length()

指定者:介面 Comparable<String> 中的 compareTo

參數:anotherString - 要比較的 String。

返回:如果參數字元串等於此字元串,則返回 0 值;如果按字典順序此字元串小於字元串參數,則返回一個小於 0 的值;如果按字典順序此字元串大於字元串參數,則返回一個大於 0 的值。

(3)comparejava擴展閱讀:

compareTo就是比較兩個值,如果前者大於後者,返回1,等於返回0,小於返回-1,我下面給出了例子,由於比較的變數我用的是int,int型可以直接比較,所有沒有用到compareTo比較,如果聲明的是Date、String、Integer或者其他的,可以直接使用compareTo比較,比如以下函數代碼用法:

public int compareTo(TestModel1 o) {

return this.str1.compareTo(o.str1);

}

1.當兩個比較的字元串是英文且長度不等時,

1)長度短的與長度長的字元一樣,則返回的結果是兩個長度相減的值

a="hello";

b="hell";

num=1;

或者

a="h";

b="hello";

num=4;

2)長度不一樣且前幾個字元也不一樣,從第一位開始找,當找到不一樣的字元時,則返回的值是這兩個字元比較的值

a="assdf";

b="bdd";

num=-1;

2.當兩個比較的字元串是英文且長度相等時,

1)一個字元

a="a"; //97

b="b"; //98

num=-1;

2)多個字元,第一個字元不同則直接比較第一個字元

a="ah"; //a=97

b="eg"; //e=101

num=-4

3)多個字元,第一個字元相同則直接比較第二個字元,以此類推

a="ae"; //e=101

b="aa"; //a=97

num=4;

熱點內容
怎麼編譯充值後台 發布:2025-03-26 12:20:19 瀏覽:468
k臨近演算法 發布:2025-03-26 12:16:36 瀏覽:451
蘋果手機存儲的密碼在哪看 發布:2025-03-26 12:04:25 瀏覽:738
選號腳本 發布:2025-03-26 12:03:38 瀏覽:238
如何讓更改路由器密碼 發布:2025-03-26 12:03:28 瀏覽:358
哪裡買安卓播放器最便宜 發布:2025-03-26 11:57:15 瀏覽:48
xsdk編譯後未生成elf文件 發布:2025-03-26 11:51:14 瀏覽:689
自己的安裝包編譯到路由器里 發布:2025-03-26 11:50:31 瀏覽:561
c語言iftrue 發布:2025-03-26 11:48:32 瀏覽:10
中央編譯局工人 發布:2025-03-26 11:47:53 瀏覽:502