compareTo () - Methode nicht überschreiben des Standard-Methode bei der Verwendung von Vergleichbaren Schnittstelle

Ich versuche zu überschreiben, die standardmäßig compareTo () - Methode in java schreiben, meine eigene und mit implements vergleichbar, aber es scheint, dass java immer noch mit der Standard-Methode.

Ich versuche, mich zu Sortieren Sie ein array von Zeichenfolgen, die von der Länge, die ich bekommen aus einer .dat-Datei, aber es hält Sie Sortieren in alphabetischer Reihenfolge statt. Ich würde es schätzen, wenn jemand mir sagen könnte was ich falsch mache, da ich nicht herausfinden, warum dies nicht funktioniert.

Dank

import static java.lang.System.*;
import java.util.Arrays;

public class Word implements Comparable
{
private String word;
private String[] array;

public Word()
{
    word = "";
}

public Word(String s)
{
    word = s;
}

public void setWord(String s)
{
    word = s;
}

public int compareTo(String rhs)
{
    String temp = (String)rhs;
    if(word.length() > temp.length())
        return 1;
    else if(word.length() < temp.length())
        return -1;

    return 0;
}

public void setSize(int size)
{
    array = new String[size];
}

public void add(int spot, String other)
{
    array[spot] = other;
}

public String[] sortByLength()
{
    Arrays.sort(array);
    return array;
}
public String toString()
{
    return Arrays.toString(array);
}
}

Hier ist die Klasse, die die main-Methode

import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.util.Arrays;
import static java.lang.System.*;

public class Lab18d
{
public static void main( String args[] ) throws IOException
{
    Scanner file = new Scanner(new File("lab18d.dat"));

    int size = file.nextInt();
    file.nextLine();
    Word test = new Word();
    test.setSize(size);
    String word = "";

    for(int i = 0; i < size; i++)
    {
        word = file.next();
        test.setWord(word);
        test.add(i, word);
    }
    test.sortByLength();
    System.out.println(test);
}
}

InformationsquelleAutor Special K | 2012-02-04

Schreibe einen Kommentar