Reihenfolge im Vector lässt sich nicht drehen

JavaAnfänger72

Aktives Mitglied
Ohjeee Collections sind kompliziert !!! :(
Ich versuche gerade die Reinfolge der Elemente in einem Vecort zu drehen, aber irgendwie
tut sich da nix:

Code:
import java.util.Vector;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.Collections;

class Zahl implements Comparable<Zahl>{
   
    int i;
   
    public Zahl(int i) {
        this.i = i;
    }

    @Override
    public int compareTo(Zahl o) {
        return 0;
    }
   
    int getInt(){
        return i;
    }
}

public class VectorTest {
   
    int i;
   
    public VectorTest(int zahl) {
        this.i = zahl;
    }

    public static void main(String[] args) {
       
        Vector<Zahl> vector = new Vector<Zahl>();

        Zahl x0 = new Zahl(0);
        Zahl x1 = new Zahl(1);
        Zahl x2 = new Zahl(2);
        Zahl x3 = new Zahl(3);
        Zahl x4 = new Zahl(4);
        Zahl x5 = new Zahl(5);
        Zahl x6 = new Zahl(6);
        Zahl x7 = new Zahl(7);
        Zahl x8 = new Zahl(8);
        Zahl x9 = new Zahl(9);
      
        vector.add(x0);      
        vector.add(x1);
        vector.add(x2);      
        vector.add(x3);
        vector.add(x4);      
        vector.add(x5);
        vector.add(x6);      
        vector.add(x7);
        vector.add(x8);      
        vector.add(x9);    

        System.out.println("\nAusgabe:");
        for( Zahl i: vector){
            System.out.print(i.getInt() + " ");
        }
                    
        Comparator<Zahl> comparator = Collections.reverseOrder();
        Collections.sort(vector, comparator);
        System.out.println("\nDie Ausgabe nach dem Sortieren:");

        for(Zahl i: vector){
            System.out.print(i.getInt() + " ");
        }
    }
}

Achja und bitte kein Komment zur Collegtions Vector, ich weiß das dieses veraltet ist und nicht mehr genutzt werden sollte.
 

flopalko

Bekanntes Mitglied
Du hast deine natürliche Ordnung in der Klasse Zahl nicht implementiert! Das musst du machen, damit das so funktioniert.
Du musst also das hier:
Java:
 public int compareTo(Zahl o) {
        return 0;
    }
mit etwas sinnvollem befüllen.

EDIT: Ich habe gesehen du hast vom Prinzip her die gleiche Frage schon bei deiner Klasse Tiere gestellt. Daher meine Frage an dich: glaubst du dass auf magische Weise deine Klasse schon comparable ist, nur weil du das Interface implementierst?
Per Definition ist sie dann comparable, jedoch solltest du die compareTo Methode nicht stur 0 returnen lassen, sondern diese sinnvoll überschreiben.
Wenn du das nicht machst musst du dir einen Comparator erstellen (hast du eh gemacht), aber dann auch richtig und nicht den natürlichen Comparator deiner Klasse reversed verlangen. Der funktioniert dann nämlich nicht.
 
Zuletzt bearbeitet:

JavaAnfänger72

Aktives Mitglied
Hey flopalko, also ich war vieleicht etwas ungenau, Entschuldigung, ich wollte es über den Comparator lösen und nicht über die Methode compareTo(), vondaher ist das doch nicht die gleiche Frage oder?
 

mrBrown

Super-Moderator
Mitarbeiter
Ohjeee Collections sind kompliziert !!! :(
Ich versuche gerade die Reinfolge der Elemente in einem Vecort zu drehen, aber irgendwie
tut sich da nix:
Drehen = natürliche Ordnung rückwärts, oder aktuelle Reihenfolge in der Liste, nur andersrum?
Letzteres wäre #java.util.Collections.reverse.

Achja und bitte kein Komment zur Collegtions Vector, ich weiß das dieses veraltet ist und nicht mehr genutzt werden sollte.
Warum benutzt du's dann? ;)

Hey flopalko, also ich war vieleicht etwas ungenau, Entschuldigung, ich wollte es über den Comparator lösen und nicht über die Methode compareTo(), vondaher ist das doch nicht die gleiche Frage oder?
Wenn du es über einen extra Comperator machen willst, solltest du auch einen Implementieren.
#Collections.reverseOrder nutzt intern compareTo (Die du immer richtig implementieren solltest, wenn man sie schon implementiert!).
 

flopalko

Bekanntes Mitglied
Hey flopalko, also ich war vieleicht etwas ungenau, Entschuldigung, ich wollte es über den Comparator lösen und nicht über die Methode compareTo(), vondaher ist das doch nicht die gleiche Frage oder?
Also: du kannst entweder die parameterlose Methode reverseOrder nehmen (diese nutzt dann die compareTo Methode deiner comparable Klasse) oder du benutzt einen neuen Comparator, den du als Parameter mitgibst.
Von daher ist das schon die gleiche Frage (vom Prinzip her). Schau dir nochmal genau an, wie diese Methoden funktionieren und lies dir auch die Javadoc dazu durch.
 

JavaAnfänger72

Aktives Mitglied
Vielen Dank für alle Kommentare !!!
Meine Lösung ist nun die Folgende:
Code:
class SortReverse implements Comparator<Zahl> {

    @Override
    public int compare(Zahl i1, Zahl i2){
        return -1;
    }
}

class Zahl implements Comparable<Zahl>{
  
    int i;
  
    public Zahl(int i) {
        this.i = i;
    }

    @Override
    public int compareTo(Zahl o) {
        return 0;
    }
  
    int getInt(){
        return i;
    }
}

public class Vector_Test {
  
    int i;
  
    public Vector_Test(int zahl) {
        this.i = zahl;
    }

    public static void main(String[] args) {
      
        Vector<Zahl> vector = new Vector<Zahl>();

        Zahl x0 = new Zahl(0);
        Zahl x1 = new Zahl(1);
        Zahl x2 = new Zahl(2);
        Zahl x3 = new Zahl(3);
        Zahl x4 = new Zahl(4);
        Zahl x5 = new Zahl(5);
        Zahl x6 = new Zahl(6);
        Zahl x7 = new Zahl(7);
        Zahl x8 = new Zahl(8);
        Zahl x9 = new Zahl(9);
     
        vector.add(x0);     
        vector.add(x1);
        vector.add(x2);     
        vector.add(x3);
        vector.add(x4);     
        vector.add(x5);
        vector.add(x6);     
        vector.add(x7);
        vector.add(x8);     
        vector.add(x9);   

        System.out.println("\nAusgabe:");
        for( Zahl i: vector){
            System.out.print(i.getInt() + " ");
        }
      
        Collections.sort(vector, new SortReverse());
        System.out.println();
        System.out.println("\nDie Ausgabe nach dem Sortieren:");
        for(Zahl i: vector){
            System.out.print(i.getInt() + " ");
        }
    }
}

Ich implementiere die class SortReverse welche das Interfaces
Comparator implementiert.
Aufgrund des Interfaces Comparator deklariere und inizalisiere ich
die Methode compara. Gibt compare -1 zurück wird mein Vector vector
durch den Aufruf Collections.sort(vector, new SortReverse());
absteigend sortiert.
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Soll ich ehrlich sein? Die Lösung ist keinesfalls besser geworden...

Natürliche Ordnung deiner Zahlen ist, das alle genau gleich groß sind.
Ordnung deines SortReverse ist, das die erste Zahl immer kleiner ist, als die zweite.
also compare(1,0) ergibt 0 ist größer und compare(1,1) ergibt 1 ist kleiner (bzw größer)...
 

JavaAnfänger72

Aktives Mitglied
Ok, jetzt ist es aber hofenlich richtig.
Ich ersetzte die Methode compare durch die nachstehende Methode compare:

Code:
    public int compare(Zahl i1, Zahl i2){
        if (i1.getInt() > i2.getInt()){
            return -1;
        }
        else if (i1.getInt() < i2.getInt()){
            return 1;
        }
        else{
            return 0;
        }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
J Methoden Die Reihenfolge der Iterator-Elemente umkehren Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
Q Besitzen zwei Strings identische Buchstaben, nur in anderer Reihenfolge? Java Basics - Anfänger-Themen 10
M Feste Reihenfolge von dem Ablauf von Methoden Java Basics - Anfänger-Themen 7
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
A String in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 7
L Reihenfolge Ausgabe Java Basics - Anfänger-Themen 5
J Algorithmus - Strings auf eigene Reihenfolge miteinander vergleichen Java Basics - Anfänger-Themen 4
D TAB Reihenfolge im JSinner Java Basics - Anfänger-Themen 1
RowdyN Methoden Befehle in zufälliger Reihenfolge ausführen lassen Java Basics - Anfänger-Themen 5
B Arrays in Reihenfolge vertauschen Java Basics - Anfänger-Themen 6
M Array Reihenfolge umdrehen Java Basics - Anfänger-Themen 9
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
S Warum muss ich die operationen mit AffineTransform in umgekehrter Reihenfolge ausfuehren..? Java Basics - Anfänger-Themen 4
M Reihenfolge von Testmethoden in JUnit beeinflussen Java Basics - Anfänger-Themen 2
M Ausgabe in falscher Reihenfolge Java Basics - Anfänger-Themen 7
S Vokal Reihenfolge Java Basics - Anfänger-Themen 1
C if Reihenfolge Java Basics - Anfänger-Themen 2
W String von hinten alle drei Zeichen abschneiden und in umgekehrter Reihenfolge ausgeben. Java Basics - Anfänger-Themen 9
F Reihenfolge des Quelltexts Java Basics - Anfänger-Themen 6
S Jede Reihenfolge einer zufällig langen Liste ausprobieren Java Basics - Anfänger-Themen 3
B AffineTransform - Reihenfolge der Operationen Java Basics - Anfänger-Themen 3
B Methoden Logische Reihenfolge in Programmen? Java Basics - Anfänger-Themen 4
D Problem mit Initialisierung und Reihenfolge Java Basics - Anfänger-Themen 10
O Zwingende Reihenfolge von Methoden Java Basics - Anfänger-Themen 33
P Vereinfachte for-Schleife wird in umgekehrter Reihenfolge ausgewertet Java Basics - Anfänger-Themen 7
X Collections Reihenfolge bestimmter Objekte in einer ArrayList verändern Java Basics - Anfänger-Themen 2
S Buttons übereinander legen - Reihenfolge Java Basics - Anfänger-Themen 2
G Zahlen in zufälliger Reihenfolge ausgeben/speichern. Java Basics - Anfänger-Themen 2
R Reihenfolge im Konstruktor der Objekte Java Basics - Anfänger-Themen 13
L Properties Reihenfolge vorgeben Java Basics - Anfänger-Themen 13
N Reihenfolge von Methoden Java Basics - Anfänger-Themen 5
F Reihenfolge in der Events abgearbeitet werden Java Basics - Anfänger-Themen 2
A Wörter umgekehrten Reihenfolge ausgeben Java Basics - Anfänger-Themen 3
A Reihenfolge bei equals() Java Basics - Anfänger-Themen 2
K Reihenfolge Modifikatoren Java Basics - Anfänger-Themen 6
U Zuweisungen - Reihenfolge Java Basics - Anfänger-Themen 9
S Falsche Reihenfolge von Methodenaufrufen Java Basics - Anfänger-Themen 8
G Array Reihenfolge ändern Java Basics - Anfänger-Themen 6
M Reihenfolge von Objekten im Vektor Java Basics - Anfänger-Themen 3
A Liste von Listen mit fester reihenfolge Java Basics - Anfänger-Themen 6
P Frage zu OO (Reihenfolge der Klassen) Java Basics - Anfänger-Themen 2
G Feld in umgekehrter Reihenfolge an zweites Feld übergeben Java Basics - Anfänger-Themen 5
T Reihenfolge von Strings prüfen Java Basics - Anfänger-Themen 3
B Stack mit Strings in zufälliger Reihenfolge füllen Java Basics - Anfänger-Themen 4
K Array umgedrehte Reihenfolge Java Basics - Anfänger-Themen 2
M String Reihenfolge umkehren Java Basics - Anfänger-Themen 2
M Array anders sortieren, aber die Reihenfolge beibehalten Java Basics - Anfänger-Themen 4
V Reihenfolge von Befehlen - hier repaint() zu spät Java Basics - Anfänger-Themen 13
N Zahlen einlesen und in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 5
D Array in umgekehrter Reihenfolge Java Basics - Anfänger-Themen 4
A Reihenfolge erfassen Java Basics - Anfänger-Themen 11
A String Zeichen löschen in einer bestimmten Reihenfolge Java Basics - Anfänger-Themen 25
G Zahlen in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 6
A Exception Reihenfolge Java Basics - Anfänger-Themen 3
M Sorry,ne blöde Frage Focus setzen und Focus Reihenfolge Java Basics - Anfänger-Themen 15
L Reihenfolge der Methodenaufrufe Java Basics - Anfänger-Themen 6
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
M Klassen Gesamt speicherbare Elemente in Vector? Java Basics - Anfänger-Themen 3
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
P Objekte in Vector werden überschrieben Java Basics - Anfänger-Themen 4
P Array in Vector speichern Java Basics - Anfänger-Themen 2
E Methoden new Vector().add(x).add(x); ? Java Basics - Anfänger-Themen 5
F Vector istGeordnet Java Basics - Anfänger-Themen 15
R Vector-Filterfunktion Java Basics - Anfänger-Themen 4
Todesbote Map (Key=String; Value = Vector) Value/Vector sortieren Java Basics - Anfänger-Themen 13
J Vector Manipulieren.. Wie? Java Basics - Anfänger-Themen 16
M Vector eines Vectors einzeln ausgeben Java Basics - Anfänger-Themen 9
K String kommt schon in Vector vor? Java Basics - Anfänger-Themen 36
J Erzeugung eines Vector-Objekts - Frage zum Typ Java Basics - Anfänger-Themen 3
H Zugriff auf Vector Element Java Basics - Anfänger-Themen 2
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
A Author in Vector Java Basics - Anfänger-Themen 22
M Vector überschreibt Elemente bei add()-Methode Java Basics - Anfänger-Themen 10
T Elemente im Vector werden einfach überschrieben! Java Basics - Anfänger-Themen 3
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
B Globale vector? Java Basics - Anfänger-Themen 7
E 2 Dimensionaler Vector Java Basics - Anfänger-Themen 5
T Map<String, Vector>? Java Basics - Anfänger-Themen 11
P Collections Vector füllen in for-Schleife Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
M 2D Vector Java Basics - Anfänger-Themen 2
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben