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
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.
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:

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.
OK. Was ist dann unklar? Bubblesort verwenden und die Namen vergleichen. Die String-Methode compareTo() bietet sich an.
Kannst du mir vielleicht ein Code Beispiel geben
ist bubble sort der, wo die Objekte je Durchgang sofort getauscht werden? Ohne Zerlegen des Arrays?