Ich implementiere eine Form der linken Min-Heap, die willkürliche Wörter nach Länge speichert. Also, ich habe eine Wrapper-Klasse für Scanner geschrieben und geändert, um die compareTo, wie socompareTo und Strings mit einem Scanner
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;
}
wo Strom = sc.next() und nicht das Zeichen \ n ist.
in diesem Fall, wenn ich ScannerWrapper.next()> foo, wo foo ist eine beliebige Zeichenfolge der Länge> ScannerWrapper.next();
wird es die compareTo (String) verwenden, die ich geschrieben habe, falsch zurückgegeben, oder wird es irgendeine andere zufällige Sache tun?
Sorry, wenn meine Erklärung verwirrt scheint. Lassen Sie mich versuchen zu klären - 'String n = ScannerWrapper.next() und n.length()> foo.length() –
Ich kann Ihre Frage nicht wirklich gut verstehen, aber Ihre beiden 'if'-Bedingungen sind die selbe ... – AusCBloke
Wollten Sie ein '<' im zweiten Vergleich in der compareTo-Methode verwenden? – Raze