Array einer eigenen Klasse sortieren

arno.jucker

Mitglied
Hallo zusammen,


ich bin neu hier und möchte hiermit erstmal alle offiziell begrüßen:
Hallo!

Ich habe ein kleines Problem mit einer Sortierung
und zwar habe ich folgende Klasse

Java:
import java.io.File;
public class movie {
    
    private String name;
    private File path;
    
    public movie(String name, File path){
        this.name = name;
        this.path=path;
    }
    public String getMovieName(){
        return this.name;
    }
    public File getMoviePath(){
        return this.path;
    }

    public File getMovieImg(){
        File imgFile = new File(this.path.toString() + "/folder.jpg");
        return imgFile;        
    }
    public File getMovieTrailer(){
        File trailerFile = new File(this.path.toString() + "/trailer.flv");
        return trailerFile; 
    }
    public File getMovieContent(){
        File contentFile = new File(this.path.toString() + "/inhalt.ini");
        return contentFile; 
    }
    
    //zum sortieren
    /*
    public int compareTo( movie argument ) {
        if( name < argument.name )
            return -1;
        if( name > argument.name)
            return 1;
            
        return 0;
    }*/
 }

Ich würde die Einträge gerne nach ihrem Namen sortieren lassen (Überraschung).

Habe bereits compareTo versucht (siehe auch code)
was natürlich nicht geht, da es für Strings keine "natürliche Ordnung" gibt.

Ich würde das ganze gerne lösen, ohne eine neue List erstellen zu müssen um diese dann zu sortieren usw...

Also gibt es eine Möglichkeit ein Array von Objekten nach einer Instanzvariable sortieren zu lassen?

Viele vielen Dank für
eure Vorschläge und Ideen.

Beste Grüße
arno
 

Haave

Top Contributor
Ich würde die Einträge gerne nach ihrem Namen sortieren lassen (Überraschung).

Habe bereits compareTo versucht (siehe auch code)
was natürlich nicht geht, da es für Strings keine "natürliche Ordnung" gibt.
Öhm, doch? Strings werden automatisch alphabetisch sortiert.

Standardlösung für dieses Problem: Lass deine Klasse movie (besser mit Großbuchstaben am Anfang, btw) Comparable implementieren und beim Überschreiben von compareTo() gibst du einfach das String-compareTo() zurück. Also sowas:
Java:
public class Movie implements Comparable {
    String name;
    @Override
    public int compareTo(Movie m) {
        return this.name.compareTo(m.name);
    }
}
 

Michael...

Top Contributor
Für Arrays existieren standardmäßig keine Sortiermechanismen. Diese muss man mit den bekannten Sortieralgorithmen selbst sortieren.
Warum keine List?
 

arno.jucker

Mitglied
Hi,

danke schon mal für eure schnellen Antworten.

ich habs jetzt mal so versucht wie Haave mir das vorgeschlagen hat.
Java:
import java.io.File;
public class movie implements Comparable{
	private File path;
	String name;
    @Override
    public int compareTo(movie m) {
        return this.name.compareTo(m.name);
    }
Hier nur die ersten paar Zeilen
(movie ist leider immer noch klein. :oops:)

Ich bekomme nun aber in Zeile 2 den Fehler:

The type Movie must implement the inherited abstract method Comparable.compareTo(Object)

Und das versteh ich nicht, ich habs doch oben hingeschrieben.

Außerdem:

The method compareTo(Movie) of type Movie must override or implement a supertype method
in line 6

Falls ich das mit java.util.Arrays.sort machen möchte/kann
,
wie sag ich ihm, wonach er sortiert?
soweit ich weiß, kann ich dort ja keine
Strings und keine Instanzvariablen sondern höchstens Objekte eingeben.
Und woher weiß er dann, wie er diese sortieren muss?

Tut mir leid, falls ich mich blöd anstelle.
Nochmals Danke.
 

Eldorado

Bekanntes Mitglied
Comparable.compareTo(Object)
Die Fehlermeldung sagt ja deutlich dass ein Object und nicht movie übergeben werden soll, also:
Java:
public int compareTo(Object m){}

Edit: Achja, es kommen übrigens beide Fehlermeldungen von diesem Fehler. In dem Zusammenhang ist auch das Keyword instanceoff wichtig.
 
G

Gast2

Gast
The type Movie must implement the inherited abstract method Comparable.compareTo(Object)

Und das versteh ich nicht, ich habs doch oben hingeschrieben.

Außerdem:

The method compareTo(Movie) of type Movie must override or implement a supertype method
in line 6

Falls ich das mit java.util.Arrays.sort machen möchte/kann
,
wie sag ich ihm, wonach er sortiert?
soweit ich weiß, kann ich dort ja keine
Strings und keine Instanzvariablen sondern höchstens Objekte eingeben.
Und woher weiß er dann, wie er diese sortieren muss?

Tut mir leid, falls ich mich blöd anstelle.
Nochmals Danke.


Comparable.compareTo(Object)
Die Fehlermeldung sagt ja deutlich dass ein Object und nicht movie übergeben werden soll, also:
Java:
public int compareTo(Object m){}

Edit: Achja, es kommen übrigens beide Fehlermeldungen von diesem Fehler. In dem Zusammenhang ist auch das Keyword instanceoff wichtig.


Bitte nicht! Lieber gleich so:
Java:
import java.io.File;
public class movie implements Comparable<movie>{
	private File path;
	String name;
    @Override
    public int compareTo(movie m) {
        return this.name.compareTo(m.name);
    }
}

Btw - Klassennamen sollte man laut Code Conventions mit einem Großbuchstaben beginnen:

Java:
import java.io.File;
public class Movie implements Comparable<Movie>{
	private File path;
	String name;
    @Override
    public int compareTo(Movie m) {
        return this.name.compareTo(m.name);
    }
}

java.util.Arrays.sort sortiert halt so wie dein compareTo die Objekte vergleicht. In deinem Fall anhgand des Names.
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor

arno.jucker

Mitglied
Wow, ihr seid echt fix.

Also es funktioniert jetzt
Und zwar mit

fassy hat gesagt.:
Bitte nicht! Lieber gleich so:
Java:
import java.io.File;
public class movie implements Comparable<movie>{
    private File path;
    String name;
    @Override
    public int compareTo(movie m) {
        return this.name.compareTo(m.name);
    }
}

Vielen Vielen Dank.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
F Array einer eigenen Klasse erstellen. Java Basics - Anfänger-Themen 8
F Array einer eigenen Klasse Java Basics - Anfänger-Themen 5
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
I Array einer Methode wiedergeben Java Basics - Anfänger-Themen 2
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
B Wie speicher ich die Outputs einer Methode in ein Array ein? Java Basics - Anfänger-Themen 1
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
S Übertragen einer Textdatei in ein 2d-Array Java Basics - Anfänger-Themen 2
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
C Array aus einer Methode zurückgeben und ausgeben Java Basics - Anfänger-Themen 1
G Array aus einer Wrapperklasse? Java Basics - Anfänger-Themen 2
J Datentypen Array von einer LinkedList Java Basics - Anfänger-Themen 5
M Zugriffsproblem auf (zweidimensionales) Array in einer ArrayList Java Basics - Anfänger-Themen 15
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
T Methoden in einer array werte vergleichen Java Basics - Anfänger-Themen 6
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
F Array als Instanz einer Klasse Java Basics - Anfänger-Themen 8
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
P int Array direkt einer Funktion übergeben Java Basics - Anfänger-Themen 3
T Array in einer Arraylist Java Basics - Anfänger-Themen 28
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
A Ein Array aus einer Klasse wird nicht sauber abgefüllt Java Basics - Anfänger-Themen 4
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
c_sidi90 Array in einer txt Datei speichern Java Basics - Anfänger-Themen 11
J Strings aus einer Datei in 2D Array schreiben Java Basics - Anfänger-Themen 3
E Einlesen einer int und speichern in einem Array Java Basics - Anfänger-Themen 7
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
Nadja 2-Dim Array mit einer Zeile int und einer double Java Basics - Anfänger-Themen 4
P Array in einer Methode verändern Java Basics - Anfänger-Themen 6
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
J Array in einer Liste Java Basics - Anfänger-Themen 2
B Buttons in einer Array Java Basics - Anfänger-Themen 6
E Inhalt einer array zelle prüfen? Java Basics - Anfänger-Themen 2
D Auf Array von einer Methode zugreifen Java Basics - Anfänger-Themen 2
G Definition einer Array Java Basics - Anfänger-Themen 3
G Array in main Methode bilden und in einer Methode nutzen? Java Basics - Anfänger-Themen 11
S Einlesen einer Datei und ins Array speichern Java Basics - Anfänger-Themen 11
G Inhalt einer Textdatei in ein Array einlesen Java Basics - Anfänger-Themen 2
A Länge einer Dimension in 2-dimensionalem Array ? Java Basics - Anfänger-Themen 2
M Aus einer Klasse auf Array einer anderen zugreifen. WIE? Java Basics - Anfänger-Themen 4
C Inhalt aus einer Array in eine andere Array kopieren Java Basics - Anfänger-Themen 2
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben