Linked List sortieren

Hansi123

Mitglied
Hallo,

das das mit der Sortierten Liste über ein SortedSet(http://www.java-forum.org/java-basics-anfaenger-themen/102781-sorted-set.html) vermutlich nix wird. Würde ich jetzt das Ganze per Hand mit einer LinkedList machen.

Nochmal Zusammengefasst. Ich habe eine Klasse mit folgenden Attributen:

Name, Zahl1, Zahl2

Es soll nach Zahl 1 sortiert werden. Wenn es die Kombination Name, Zahl1, Zahl2 schon gibt, soll geupdated werden. Ansonsten immer hinter dem letzten mit Zahl 1 eingefügt werden.

Bsp.

Add:
AAA,1,0
Vorher:

Nachher:
AAA,1,0

Add:
AAA,1,0

Vorher:
AAA,1,0
Nachher:
AAA,1,0


Add:
BBB,1,0
Vorher:
AAA,1,0
Nachher:
AAA,1,0
BBB,1,0

Add:
BBB,1,2
Vorher:
AAA,1,0
BBB,1,0
Nachher:
AAA,1,0
BBB,1,2


Add:
AAA,5,1
Vorher:
AAA,1,0
BBB,1,2
Nachher:
AAA,1,0
BBB,1,2
AAA,5,1

Ich hoffe ich habe jetzt alle Fälle abgedeckt. Hier mein bisheriger Ansatz:

Java:
        if(liste.isEmpty()) {
            liste.add(neu);
        } else if (!liste.contains(neu)) {
            Iterator<Klasse> it=liste.iterator();
            while(it.hasNext()) {

            }

        }

Leider weiß ich jetzt nciht, wie ich alle Fälle abdecke, und mit dem Iterator umgehe.
 

energy47

Mitglied
machst doch mit einem comparator object.. dorf definierst du wie entschieden wird was größer was kleiner ist..
und sortierst es zb mit selection, insertion oder bubblesort oder sowas..
 

Hansi123

Mitglied
Das hatte ich schon. Da wird aber der Fall, das es geupdated werden kann, wenn Zahl2 anders ist nciht abgedeckt.

Mir würde erst einmal reichen zu wissen, wie man mit einem Iterator etwas in die Liste einfügt.
 

energy47

Mitglied
Das hatte ich schon. Da wird aber der Fall, das es geupdated werden kann, wenn Zahl2 anders ist nciht abgedeckt.

Mir würde erst einmal reichen zu wissen, wie man mit einem Iterator etwas in die Liste einfügt.

warum?? , müsste doch so gehen
Code:
 if comparator.compare(a,b) == 0 -> update;
 else einfügen();
sortieren();

in beiden fällen wird ersetzt oder eingefügt .. sortiert wird es jedes mal..
 

Hansi123

Mitglied
Also ich bin neu in Java. Deswegen würde ich das erst einmal lieber über eine LinkedList manuell machen. Gibt es nciht eine Funktion, die Überprüft, ob es in der Liste schon ein Objekt im gleichen Zustand gibt? contains geht irgendwie nciht. Das meldet wahrscheinlich nur das selbe Objekt.
 

Marco13

Top Contributor
LinkedList oder nicht ist eigentlich egal, ich sehe keinen Grund warum man das nicht gegen eine List programmieren sollte - sich einen Algorithmus auszudenken, der den Vorteil einer LinkedList ausnutzt wäre aufwändiger, und könnte der zweite Schritt sein, sofern du nicht von vornherein weißt, dass das extrem Zeitkritisch ist, und es NUR mit einer LinkedList in akzeptabler Zeit laufen wird. Ansonsten solltest du erstmal die eigentlich durchzuführenden Schritte hinkriegen, so dass sie sicher funktionieren. Eben genau den Vergleich und die Frage, wann ersetzt werden muss. Nochmal: Es wäre hilfreich, wenn du deine Klasse posten würdest, die diese Daten speichert.

Wenn es die Kombination Name, Zahl1, Zahl2 schon gibt, soll geupdated werden.

Was heißt "update" in diesem Fall? In der Liste liegt schon ein Objekt
(A,1,123)
und jetzt kommt ein anderes Objekt
(A,1,123)
soll das dann eingefügt werden oder nicht? Oder ist das egal? Sind zwei dieser Objekte gleich, genau dann wenn diese drei genannten Eigenschaften (Name,Zahl1,Zahl2) gleich sind?
 

energy47

Mitglied
ah ich glaube ich sehe jetzt was schief leuft..

du musst natürlcih die contains methode benutzen.. das ist shcon richtig..
aber du musst auch die equals methode deines objektes das zu einfügst überschreiben..
so dass nur name und zahl1 verglichen werden.. zahl2 interesiert dich bei equals nicht..

Code:
if(liste.contains(neuesA)==true)
liste.add(liste.indexOf(neuesA),neuesA); //hier wird der index des alten a abgefragt mit hilfe des
////////////////////////////////////////////////neuen a da neuesA = altes A ist..
else
    liste.add(neuesA);
liste sortieren();

aber dazu musst du die equals methode von deinem neuesA überschreiben..


denke das könnte klappen
 

Marco13

Top Contributor
Deswegen habe ich schon ein paarmal gesagt, dass er die klasse Posten sollte ;) Eigentlich müßte man equals überschreiben, aber da das ganze auch noch mit einer Sortierung zusammenkommen soll, muss man aufpassen, dass die Comparable/Comparator-Anforderungen erfüllt sind, die "consistent with equals" sein müssen. Erschwerend kommt hinzu, dass es mal um ein "Set" ging, und dort (soweit ich weiß) nicht spezifiziert ist, ob beim "add" eines Elementes das "equals" zu einen schon enthaltenen ist, das schon enthaltene ersetzt wird oder nicht. (Mit Sicherheit wird es NICHT ersetzt, es geht nur um die Frage, ob das spezifiziert ist). Bei einer List würde es aber gehen.
 

energy47

Mitglied
genau..

einfach mal in die methoden der entsprechenden klassen reinschauen.. in Eclipse kann man zb durch punkt notation sehen welche methoden die klasse anbietet und was sie tun..
Java:
Object o1 = new Object();
o1.  // hier strg + leertaste drücken dann sieht man alle methoden..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Linked list sortieren Java Basics - Anfänger-Themen 8
T Linked List set-Methode Java Basics - Anfänger-Themen 2
G Linked list, Methode zum Vertauschen von Elementen Java Basics - Anfänger-Themen 14
T KlausurÜbung- Förderband-Linked List Java Basics - Anfänger-Themen 53
hooked Verkettete Liste / linked list Java Basics - Anfänger-Themen 2
S Methoden Linked List Methoden können nicht aufgerufen werden Java Basics - Anfänger-Themen 1
L Linked List - Array List Java Basics - Anfänger-Themen 2
SexyPenny90 Implementierung einer doubly linked list Java Basics - Anfänger-Themen 5
G Linked List Programm add Problem Java Basics - Anfänger-Themen 5
S Synchronisieren einer Linked List Java Basics - Anfänger-Themen 16
E Linked List generisch Java Basics - Anfänger-Themen 5
B Linked-List Java Basics - Anfänger-Themen 2
T einfügen bei einer Linked List Java Basics - Anfänger-Themen 8
J linked list add ? Java Basics - Anfänger-Themen 2
J linked list Java Basics - Anfänger-Themen 13
M Beispiel für Linked List Java Basics - Anfänger-Themen 9
G Linked List mit Interface erstellen Java Basics - Anfänger-Themen 10
K Java Linked List Java Basics - Anfänger-Themen 11
W löschen in einer single linked list Java Basics - Anfänger-Themen 3
M Linked List schreiben und lesen Java Basics - Anfänger-Themen 4
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
G (Linked)HashMap sortieren Java Basics - Anfänger-Themen 1
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
J Array.list vergleichen Java Basics - Anfänger-Themen 1
B Vektor vs List Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
L Datentypen Array List Java Basics - Anfänger-Themen 9
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
I Methoden List.contains() beim 2. Element = true Java Basics - Anfänger-Themen 1
N HashMap in List good practice? Java Basics - Anfänger-Themen 2
B SWAP List; Liste neu anordnen Java Basics - Anfänger-Themen 4
W Stream Array List - Frage Java Basics - Anfänger-Themen 5
E Interface List nicht als Collection an erkannt. Java Basics - Anfänger-Themen 14
X Array List geordnet ausgeben. (JSF und JAVA) Java Basics - Anfänger-Themen 1
D new arraylist (List) dynamisch erstellen Java Basics - Anfänger-Themen 1
Yjuq Generic Methode - Wie muss die List Definition aussehen? Java Basics - Anfänger-Themen 3
M List<String> auswählen Java Basics - Anfänger-Themen 42
F In List Rekursiv suchen Java Basics - Anfänger-Themen 12
B Unterschied zwischen (List<T> a) und (T[] a) Java Basics - Anfänger-Themen 7
T HashSet in List-Object Java Basics - Anfänger-Themen 5
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
B Sorting List und Remove Java Basics - Anfänger-Themen 2
B String: suche nach Wörter und in List<String> speichern Java Basics - Anfänger-Themen 3
M Methode überladen - Array List Java Basics - Anfänger-Themen 5
L LIST.ADD Java Basics - Anfänger-Themen 2
M XWPF - Bullet Point list erstellen Java Basics - Anfänger-Themen 1
I <List> sortieren Java Basics - Anfänger-Themen 2
N Klassen List-Art Java Basics - Anfänger-Themen 5
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
Salo Datentypen "Doppelt" List(e) ("gesucht") Java Basics - Anfänger-Themen 6
F .csv Export aus einer list Java Basics - Anfänger-Themen 25
D Komischer Fehler nach <Integer> List Java Basics - Anfänger-Themen 2
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
T List und ArrayList Java Basics - Anfänger-Themen 3
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
D Input/Output CSV Parser list unvollständig Java Basics - Anfänger-Themen 25
V Erste Schritte Dateinamen aus einer FIle[] in eine List Java Basics - Anfänger-Themen 11
U JAXB - List wird nicht ausgefüllt Java Basics - Anfänger-Themen 1
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
D Bestimmten Wert aus Array List ausgeben Java Basics - Anfänger-Themen 7
V Personenverwaltung mit List<>, falsche Ausgaben Java Basics - Anfänger-Themen 5
M List befüllen Java Basics - Anfänger-Themen 3
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
P Anlegen und Abfragen von Array List Java Basics - Anfänger-Themen 4
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
A Wie nutze ich List<List<String>> Java Basics - Anfänger-Themen 4
M Endlos schleife in List Java Basics - Anfänger-Themen 5
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
S Probleme bei Ausgabe von rekursiver Methode (List) Java Basics - Anfänger-Themen 16
T Tabstopp in AWT-List? Java Basics - Anfänger-Themen 8
P Doppelte Einträge in eine List Java Basics - Anfänger-Themen 5
M Wozu Upcasting? Am Beispiel List = ArrayList Java Basics - Anfänger-Themen 2
A List mit integern füllen Java Basics - Anfänger-Themen 4
D sortieren von List<> Java Basics - Anfänger-Themen 2
B List - Drag&Drop Java Basics - Anfänger-Themen 8
C List Abfragenproblem Java Basics - Anfänger-Themen 3
J List als anonyme Klasse Java Basics - Anfänger-Themen 9
H Collections List in List<SpecificType> als stat. generische Methode zurückgeben Java Basics - Anfänger-Themen 4
F Wozu braucht man array list? Java Basics - Anfänger-Themen 29
T Collections Wie funktioniert List() ? Java Basics - Anfänger-Themen 7
Kenan89 Java Date List Java Basics - Anfänger-Themen 4
tux20 Problem beim Schreiben von List to File Java Basics - Anfänger-Themen 2
K Frage Set List Java Basics - Anfänger-Themen 3
M Array List ausgeben Java Basics - Anfänger-Themen 13
C Typen aus List<Object[]> ändern Java Basics - Anfänger-Themen 7
S Gute List Implementation Java Basics - Anfänger-Themen 5
A List Array - wie instanzieren Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben