javacompare
❶ java中compareTo是什麼意思
public int compareTo(Double anotherDouble)從數字上比較兩個 Double 對象。在應用到基本 double 值時,通過此方法進行的比較與通過 Java 語言回的數值答比較運算符(<、<=、== 和 >= >)進行的比較之間存在以下兩方面的不同:
此方法認為 Double.NaN 等於它自身,且大於其他所有 double 值(包括 Double.POSITIVE_INFINITY)。
此方法認為 0.0d 大於 -0.0d。
這可以確保受此方法影響的 Double 對象的自然順序 與 equals 方法一致。
指定者:
介面 Comparable<Double> 中的 compareTo
參數:
anotherDouble - 要比較的 Double 值。
返回:
如果 anotherDouble 在數字上等同於此 Double,則返回 0;如果 Double 在數字上小於此 anotherDouble,則返回小於 0 的值;如果 Double 在數字上大於此 anotherDouble,則返回大於 0 的值。
❷ java compareto 和compare是一樣的方法嗎
compareTo(Object o)方法是java.lang.Comparable<T>介面中的方法,當需要對某個類的對象進行排序時,該類需要實現Comparable<T>介面的,必須重寫public int compareTo(T o)方法,比如MapRece中Map函數和Rece函數處理的 <key,value>,其中需要根據key對鍵值對進行排序,所以,key實現了WritableComparable<T>介面,實現這個介面可同時用於序列化和反序列化。WritableComparable<T>介面(用於序列化和反序列化)是Writable介面和Comparable<T>介面的組合;
compare(Object o1,Object o2)方法是java.util.Comparator<T>介面的方法,它實際上用的是待比較對象的compareTo(Object o)方法。
❸ java.(compareTo的用法)
String 是字元串,它的比較用compareTo方法,它從第一位開始比較,如果遇到不同的字元,則馬上返回這兩個字回符的ascii值差值..返回值是int類型答
像你題目中,int跟int的比較不能用compareTo方法,直接用大於(>) 小於(<) 或者 等於(==) 不等於(!=)來比較即可
❹ Java中compareTo和compare的區別
這兩個方法經常搞混淆,現對其進行總結以加深記憶。
compareTo(Object o)方法是java.lang.Comparable<T>介面中的方法,當需要對某個類的對象進行排序時,該類需要實現Comparable<T>介面的,必須重寫public int compareTo(T o)方法,比如MapRece中Map函數和Rece函數處理的 <key,value>,其中需要根據key對鍵值對進行排序,所以,key實現了WritableComparable<T>介面,實現這個介面可同時用於序列化和反序列化。WritableComparable<T>介面(用於序列化和反序列化)是Writable介面和Comparable<T>介面的組合;
compare(Object o1,Object o2)方法是java.util.Comparator<T>介面的方法,它實際上用的是待比較對象的compareTo(Object o)方法。
下面我們寫一來看看上面兩個方法是怎麼用的:
首先,寫一個User類,代碼如下:
public class User implements Comparable<Object>{
int id;
String name;
public User(int id,String name){
this.id = id;
this.name = name;
}
/*
* Getters and Setters
*/
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(Object o) {
if(this ==o){
return 0;
}
else if (o!=null && o instanceof User) {
User u = (User) o;
if(id<=u.id){
return -1;
}else{
return 1;
}
}else{
return -1;
}
}
}
接下來,我們寫一個測試類Test:
public class Test{
//編寫Comparator,根據User的id對User進行排序
private static final Comparator<User> COMPARATOR = new Comparator<User>() {
public int compare(User o1, User o2) {
return o1.compareTo(o2);//運用User類的compareTo方法比較兩個對象
}
};
public static void main(String[] args) {
ArrayList<User> student = new ArrayList<User>();
User user1 = new User(1,"yueliming");
User user2 = new User(2,"yueliming");
Collections.sort(student, COMPARATOR);//用我們寫好的Comparator對student進行排序
for(int i=0;i<student.size();i++){
System.out.println(student.get(i).getId());
}
}
}
❺ java中的compare
compareTo方法中,如果前面的值大返回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。
備註:除了compareTo方法外,為了比較字母,還有compareToIgnoreCase(忽略大小寫比較),用法和compareTo方法相同。
❻ java 中compare 是什麼
答案選 D,E
題目的意思是,編譯器報錯,提示有abstract的方法沒有實現。
從選項來看,就是找出那些方法是abstract的。Compare和CompareTo都是來自排序的實現,使用比較器有兩種類型一種是實現compareable和comparator,這兩種方法分別要求實現compare和compareto方法。
❼ java中compareable和comparetor還有compareTo這三之間的區別是什麼,相同點又是什麼
這個問題不難!ComparcompareTo是Comparable介面定義的方法。
Comparable表示內在的順序,如整數(大小),字元串(字典序)
Comparator表示的是某一特性的順序。如按人口/面積/GDP之類對國家排序
❽ Java中CompareTo()方法的問題
compareTo方法中,如果前面的值大返回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。
備註:除了compareTo方法外,為了比較字母,還有compareToIgnoreCase(忽略大小寫比較),用法和compareTo方法相同。
❾ 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 的值。
(9)javacompare擴展閱讀
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
❿ java中compareTo()的返回值是什麼
compareTo()是兩個串對象比較大小,返回一個整數值,如果調用串對象大,返回正整數,反之,返回負整數。相等則返回0。返回的值是兩個串首次出現不同字元的ASCII的差值。