Bubblesort für Arraylist mit Objekten?
Ich möchte gerne wissen wie man eine Arraylist mit bubblesort sortieren wenn dort Objekte drin sind in Java. Es soll nach dem Namen sortiert werden
3 Antworten
![](https://images.gutefrage.net/media/user/daCypher/1444744777_nmmslarge.jpg?v=1444744777000)
Wie ist denn der BubbleSort-Algorithmus bei dir aufgebaut? Den musst du ja selbst programmiert haben oder aus einer externen Library holen.
Falls er ähnlich funktioniert, wie der Java-interne Sortieralgorithmus, musst du ihm nur die ArrayList und einen Comparator mitgeben, anhand dessen er erkennen kann, welches von zwei Objekten größer oder kleiner ist.
Z.B. ungefähr so:
BubbleSort.sort(p, person -> Comparator.comparing(person.getName()));
Für bessere Infos müssten wir deinen BubbleSort Algorithmus sehen.
![](https://images.gutefrage.net/media/user/Juzil/1612615596553_nmmslarge__0_0_640_640_5f9492e49fa6b687c65dd6eb92c4b822.jpg?v=1612615597000)
Du kannst für den Vergleich zweier Strings die String.compareTo-Methode verwenden. Sie vergleicht beide Werte nach dem Alphabet und gibt mit einer Zahl zurück, welcher Name vorher/nacher kommen sollte.
Z.b. "A".compareTo("B") würde -1, liefern, da A vor B ist
"B".compareTo("A") würde dann die 1 liefern, also müsste man bei diesem Fall die beiden Werte austauschen
Ein Bubblesort sähe dann in etwa so aus:
![- (programmieren, Java, Arraylist)](https://images.gutefrage.net/media/fragen-antworten/bilder/385911014/0_big.png?v=1612615367000)
![](https://images.gutefrage.net/media/user/Juzil/1612615596553_nmmslarge__0_0_640_640_5f9492e49fa6b687c65dd6eb92c4b822.jpg?v=1612615597000)
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Genauso wie eine Liste jedes anderen Datentyps. Du musst halt das Vergleichskriterium definieren: Alter, Name, Beruf - wonach soll sortiert werden?
Übrigens eine seltsam mühsame Art, diese Liste zu befüllen.
![](https://images.gutefrage.net/media/user/720Florian/1586811485242_nmmslarge__0_0_1440_1440_ca5ab884ec0fabed2aadbc0606505d33.jpg?v=1586811485000)
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
OK. Was ist dann unklar? Bubblesort verwenden und die Namen vergleichen. Die String-Methode compareTo() bietet sich an.
![](https://images.gutefrage.net/media/user/720Florian/1586811485242_nmmslarge__0_0_1440_1440_ca5ab884ec0fabed2aadbc0606505d33.jpg?v=1586811485000)
Kannst du mir vielleicht ein Code Beispiel geben
ist bubble sort der, wo die Objekte je Durchgang sofort getauscht werden? Ohne Zerlegen des Arrays?