Sortieren

Status
Nicht offen für weitere Antworten.
T

Tarcil

Gast
Hallo zusammen!
Ich habe ein Problem, und zwar:
In einer Java-Klasse haben wir eine ArrayList mit Daten gefüllt.
Auf einer JSP-Seite wird nun eine Tabelle ausgegeben.
Diese Tabelle hat 2 Spalten, einmal den Namen und dann noch eine Spalte mit 2 Buttons (Details zu dem Objekt und löschen).
Diese Tabelle soll nun nach den Namen sortiert werden, ohne das die Anbindungen verloren gehen.
Habe es schon in der Klasse mit Colelctions.sort() probiert, hat aber nicht funktioniert.
Nur ob ich das ganz richtig gemacht habe weiß ich auch nicht.
Die Reihenfolge der Elemente ändert sich zwar, aber es ist keine Logik dahinter zu sehen.
Sollte ich versuchen die Tabelle in der Klasse zu sortieren? Oder in JSP? Wenn ja wie?
Kann mir vielleicht jemand helfen???
Danke!!!
 

byte

Top Contributor
Tarcil hat gesagt.:
Habe es schon in der Klasse mit Colelctions.sort() probiert, hat aber nicht funktioniert.
Nur ob ich das ganz richtig gemacht habe weiß ich auch nicht.
Die Reihenfolge der Elemente ändert sich zwar, aber es ist keine Logik dahinter zu sehen.
Sollte ich versuchen die Tabelle in der Klasse zu sortieren? Oder in JSP? Wenn ja wie?

Dann hast Du es wohl falsch gemacht, denn die Arrays.sort() funktioniert. ;) Wie wäre es, wenn Du einfach mal Code zeigst? Dann können wir Dir auch sagen, woran es gelegen hat. JSP kann so viel ich weiss nicht sortieren, aber lasse mich gerne eines besseren belehren.
 
S

SlaterB

Gast
> Arrays.sort()

Collections.sort()?



------------------

Tipp:
Programmlogig die nix mit Anzeigen oder Web-Verarbeitung zu tun hat einfach in einem simplen Java-Programm testen
Code:
public class Test {
   main {
        // 1. erstelle TestList, Ausgabe
 
        // 2. hier über Sortieren gedanken machen

        // 3. Ausgabe, sobald das hier korrekt klappt ist in das Web-Programm fertig übernehmen
   }

}

also von JSPs musst du hier wohl nix posten ;) (meiner Meinung nach, vielleicht ja doch nötig)
 
T

Tacil

Gast
hier mal ein bisschen Code.. :wink: Hoffe ihr könnt etwas damit anfangen...
Code:
List addresses = new ArrayList();
ArrayList originalAddresses = new ArrayList( - wird mit allen Adressen aus einer Datenbank gefüllt);
        
       
        for (int i = 0; i < originalAddresses.size(); i++)
        {
            Address address = (Address) originalAddresses.get(i);
            addresses.add(address);
       }     

        Collections.sort(addresses);
 
S

SlaterB

Gast
das klingt schon mal interessant, statt Strings oder so sind komplexe Objekte zu sortieren,
das ist eine wichtige Info!

denn Collection.sort() kann natürlich nur dann korrekt arbeiten wenn es weiß wie die Objekte in der Liste zu sortieren sind, bei Strings wäre das klar,
bei den Address-Objekten nicht ohne weiteres, dass muss man selber erstmal angeben

also: wie ist denn dort die Sortierung angegeben, ist das Interface Comparable implementiert?
bitte Code dazu wie um alles in der Welt die Collections-Klasse die Reihenfolge erraten soll! ;)
 
R

RE:

Gast
wann ist denn das Interface Comparable implementiert?
bin gerade erst mit java angefangen und deshalb frag ich lieber nochmal nach...
wie geb ich dem Collections.sort() denn an, wie er das sortieren soll?
 
T

tarcil

Gast
das ist alles etwas komplizierter...
das ist ein komplexes Shopsystem einer Firma. Undendlich viele Klassen, jsp-Dateien...
Deshalb kann ich auch nicht alles von meinem Code schreiben, sondern schreibe ein paar Sachen um...
Denn das Problem ist, das ich nicht weiß wo die Daten aus der Datenbank kommen. Außerdem
gibt es auf der Seite die Möglichkeit, einzelne Adressen zu ändern und zu löschen...
Der Ausschnitt des Codes ist aus der Klasse, die die Seite wieder anzeigt und die Adressen auflistet
 
S

SlaterB

Gast
also eigentlich sollten zwischen der Zeit in der du extrem genau weißt was Collection.sort() macht/ was ein Comparator ist
und der Zeit in der du dir über Dinge wie 'Shopsystem'/ jsp Gedanken machst sehr viele Monate liegen..

nun ja wie auch immer,
wenn du die Klasse Address nicht vorliegen hast dann kannst du nicht wissen wie dessen Compare-Operation aussieht,
aber du kannst doch sicherlich den Namen als String herauslesen und dann kannst du dir eine eigene Vergleichsoperation schreiben falls du der Standardvergleichoperation nicht traust (die könnte ja auch nach Erstellungszeitpunkt/ interner Nummerierung oder sonst einen Kriterium sortieren)

ein hoffentlich selbsterklärendes Beispiel:

Code:
import java.util.*;

public class Address implements Comparable {

	public String name;

	public Address(String newName) {
		name = newName;
	}

	public int compareTo(Object arg0) {
		return 0; // ignoriert den Namen
	}

	public String getName() {
		return name;
	}













	public static void main(String[] args) {
		ArrayList list = new ArrayList();
		list.add(new Address("a"));
		list.add(new Address("x"));
		list.add(new Address("b"));
		list.add(new Address("s"));
		list.add(new Address("t"));
		list.add(new Address("m"));

		Collections.sort(list);
		ausgabe(list); // schlecht sortiert

		Comparator c = new Comparator() { // eigene Vergleichsoperation!

			public int compare(Object arg0, Object arg1) {
				String name1 = ((Address) arg0).getName();
				String name2 = ((Address) arg1).getName();

				return name1.compareTo(name2);
			}
		};

		Collections.sort(list, c);
		ausgabe(list); // gut sortiert
	}

	private static void ausgabe(List list) {
		System.out.println("Liste: ");
		for (int i = 0; i < list.size(); i++) {
			System.out.println("i " + i + ": "
					+ ((Address) list.get(i)).getName());

		}
	}
}
 
T

tarcil

Gast
könntest du mir vielleicht bitte noch zusätzlich die Methode compare() verständlich erläutern?
welche Objekte wo rein müssen und so..
 
B

bygones

Gast
tarcil hat gesagt.:
könntest du mir vielleicht bitte noch zusätzlich die Methode compare() verständlich erläutern?
welche Objekte wo rein müssen und so..
es müssen dort keine speziellen Objekte rein.

die Methode compare vergleicht zwei Objekte. Diese beiden Objekte sind die Parameter.
in deinem Fall vergleichst du ja zwei Adressen, also kannst du die Objekte zum Typ Adresse casten

Code:
Comparator c = new Comparator() { // eigene Vergleichsoperation! 
         public int compare(Object arg0, Object arg1) { 
            // caste die beiden Objekte zu dem Typ der zu sortieren ist
            Adresse ersteAddresse = (Addresse)arg0;
            Adresse zweiteAddresse = (Addresse)arg1;

            // wir wollen die Objekte anhand ihres Namens sortieren
            // also holen wir uns die Namen 
            String name1 = ersteAddresse.getName(); 
            String name2 = zweiteAddresse.getName(); 

            // die Namen sind Strings, die die Methode compareTo implementiert,
            // die die Strings soriert
            return name1.compareTo(name2); 

           // nun weiß Java anhand dieser Methode wie zwei Address Objekte sortiert werden soll
         } 
      };

wie dann java die information nutzt, um dann bei Colletions.sort() richtig zu sortieren ist unwichtig.
 
T

tarcil

Gast
okay, ich probiers mal aus. Melde mich wenn ich fragen habe! Schon mal vielen Dank!
 
I

itler

Gast
Moin!
Gibt es eine Möglichkeit 2 Elemente einer List bzw. ArrayList zu tasuchen???
Danke!
 
B

bygones

Gast
itler hat gesagt.:
Moin!
Gibt es eine Möglichkeit 2 Elemente einer List bzw. ArrayList zu tasuchen???
Danke!
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collections.html#swap(java.util.List, int, int)

edit: grml link geht net richtig.

ist aber im grunde auch nur ein einzeiler:
Code:
list.set(i, list.set(j, list.get(i)));
 
T

tarcil

Gast
eine Frage hab ich doch noch... wie kann ich die Groß- und Kleischreibung beachten? Mit dem Comparator...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Mehrere Spalten mit Comparator sortieren Java Basics - Anfänger-Themen 2
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
K Java sortieren. Java Basics - Anfänger-Themen 7
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Sortieren Java Basics - Anfänger-Themen 1
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
L Array sortieren Java Basics - Anfänger-Themen 4
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
B Liste sortieren? Java Basics - Anfänger-Themen 4
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
B Suchen und sortieren Java Basics - Anfänger-Themen 10
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
E ArrayList sortieren Java Basics - Anfänger-Themen 16
L Methode zum sortieren Java Basics - Anfänger-Themen 1
L Methode zum sortieren Java Basics - Anfänger-Themen 1
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
A Array sortieren Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
Tommy135 Erste Schritte JavaDoc Sortieren Java Basics - Anfänger-Themen 5
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
I <List> sortieren Java Basics - Anfänger-Themen 2
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
I Sortieren nach Priorität Java Basics - Anfänger-Themen 3
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
W Array sortieren Java Basics - Anfänger-Themen 3
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
S array sortieren Java Basics - Anfänger-Themen 7
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Methoden int-Array absteigend sortieren Java Basics - Anfänger-Themen 8
C Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
J Sortieren Java Basics - Anfänger-Themen 21
O Erste Schritte TreeMap nach Value sortieren Java Basics - Anfänger-Themen 2
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
H Strings vergleichen & sortieren Java Basics - Anfänger-Themen 20
J Ungewolltes Sortieren eines Arrays Java Basics - Anfänger-Themen 4
T Collections Sortieren von Automodellen (v.a. BMW und Mercedes) Java Basics - Anfänger-Themen 3
P Liste sortieren verschiedener generischer Typen Java Basics - Anfänger-Themen 4
D Erste Schritte array aufsteigend sortieren und ausgeben Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben