我目前正在從事大學任務。我有一段代碼,如下所示。如何比較Java中的兩個「Comparable」類型變量?
if(temporary > left) { }
臨時變量和左變量都是「Comparable」類型。我的問題是,我怎麼能比較這兩個?它們總是保持整數值,但是賦值迫使我將它們聲明爲「可比較」類型。
任何幫助非常感謝,因爲我很困惑這一點。謝謝!
我目前正在從事大學任務。我有一段代碼,如下所示。如何比較Java中的兩個「Comparable」類型變量?
if(temporary > left) { }
臨時變量和左變量都是「Comparable」類型。我的問題是,我怎麼能比較這兩個?它們總是保持整數值,但是賦值迫使我將它們聲明爲「可比較」類型。
任何幫助非常感謝,因爲我很困惑這一點。謝謝!
如果你看看http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html,你就會知道,compareTo()
方法是你所需要的。
您可以使用temporary.compareTo(left)
並使用該值與0
進行比較。
在臨時temporary.compareTo(left)
中執行compareTo()
,使其返回負整數,零或正整數,因爲臨時值小於,等於或大於左值。
在Java中,接口只能聲明方法。 Comparable
接口聲明compareTo
方法。所以:
temporary.compareTo(left)
所以在compareTo方法中,我會有兩個參數,並比較兩個傳遞的參數,但我選擇? – Vimzy
如果這些變量是一個已經定義好的類型並實現了Comparable,那麼它們可以使用自己的邏輯進行比較(整數有自己的邏輯,自己的浮點數等等)。如果這些變量是您定義的自定義類型,那麼您需要轉到其類的定義並定義一個描述比較邏輯的「compareTo」方法。 –
考慮下面的類爲例:
public class Boot implements Comparable<Boot> {
int size;
public Boot(int size) {
this.size = size;
}
public int getSize() {
return size;
}
@Override
public int compareTo(Boot boot) {
if (boot.getSize() > size) {
return -1;
} else if (boot.size == size){
return 0;
} else {
return 1;
}
}
}
看一看的JavaDoc:http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html – Zyn