Bubblesort für Arraylist mit Objekten?

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:

Bild zum Beitrag

 - (programmieren, Java, Arraylist)

chilly10  06.02.2021, 13:52

ist bubble sort der, wo die Objekte je Durchgang sofort getauscht werden? Ohne Zerlegen des Arrays?

0
chilly10  06.02.2021, 13:57
@Juzil

wir haben ander Uni verschiedene kennengelernt. Funktionsweise und Namen kann ich nur nicht zuordnen 🙂 war nur nen Oop Grundlagen kurs

0

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.


720Florian 
Fragesteller
 06.02.2021, 12:40

Es soll nach dem Namen sortiert werden

0
alfredo153  06.02.2021, 12:51
@720Florian

OK. Was ist dann unklar? Bubblesort verwenden und die Namen vergleichen. Die String-Methode compareTo() bietet sich an.

1