我正在實現一種左邊最小堆的形式,它按長度存儲任意單詞。所以,我寫了掃描儀的包裝類,並改變了的compareTo,像這樣compareTo和使用掃描器的字符串
public class ScannerWrapper implements Comparable<String>
//a Scanner, sc and a String, current
public int compareTo(String str){
if(current.length() > str.length()) return -1;
if(current.length() > str.length()) return 1;
else return 0;
}
其中電流= sc.next(),而不是\ n字符。在這種情況下,如果我有ScannerWrapper.next()> foo,其中foo是任意長度的字符串> ScannerWrapper.next();如果我有ScannerWrapper.next()
它會使用我寫的compareTo(String),返回false,還是會做一些其他的隨機事件?
對不起,如果我的解釋似乎混亂。讓我試着澄清 - '字符串n = ScannerWrapper.next()和n.length()> foo.length() – 2012-04-05 04:21:42
我無法真正理解您的問題,但是您的'if'語句條件都是相同... – AusCBloke 2012-04-05 04:26:01
您是否在compareTo方法的第二次比較中使用了一個「<」? – Raze 2012-04-05 05:28:54