2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren

Darnok

Mitglied
Hallo,
Ich stehe momentan vor dem Problem das ich eine Liste aus Listen aus Objekten gerne sortieren würde, machen kann ich dies anhand von der Summe von Preisen welche die Objekte habe.
ich summiere also alle preise aller Objekte in einer Liste in meiner Oberliste zusammen, diese summen habe ich mir nochmal in einer separaten Array List gespeichert welche jetzt gleich lang ist wie meine Hauptliste und momentan auch gleich sortiert.

Nun will ich das meine Hauptliste anhand der summen sortiert wird so das die kleinste zahl oben und die größte unten ist.
hierbei kann es auch vorkommen das zahlen doppelt vorkommen aber das ist erstmal nur eine Anmerkung da ich kurz über Maps nachgedacht hatte und gemerkt hatte das dies nicht klappen wird.

Habt ihr eine Idee wie ich eine Liste sozusagen mit werten einer anderen Liste sortieren kann?

Vielen Dank ;)
 
Beste Antwort
Alternativ zu deinem Weg mit der extra Liste gibt es zwei Wege, bei denen du das Problem einfach gar nicht hast:

Beim Liste sortieren einfach jedes Mal den Preis berechnen, (hat zwar den Nachteil, dass du bei jedem Vergleich den Preis ausrechnen musst, das kannst Du aber erstmal vernachlässigen).

Oder, was der deutlich sinnvollere Weg ist, nicht direkt mit Listen sondern sinnvollen Objekten arbeiten - die "inneren Listen" könnten also z.B. einfach "Rechnungen" sein, und eine Rechnung hat einen Liste von Objekten und einen Gesamtpreis. Das ganze Modell ist dann sowohl aussagekräftig (bei Liste von Rechnungen weiß jeder, worum es geht), der Nachteil der wiederholten Preisberechnung ist weg (da der Preis für eine "Rechnung" fest steht)...

mrBrown

Super-Moderator
Mitarbeiter
Alternativ zu deinem Weg mit der extra Liste gibt es zwei Wege, bei denen du das Problem einfach gar nicht hast:

Beim Liste sortieren einfach jedes Mal den Preis berechnen, (hat zwar den Nachteil, dass du bei jedem Vergleich den Preis ausrechnen musst, das kannst Du aber erstmal vernachlässigen).

Oder, was der deutlich sinnvollere Weg ist, nicht direkt mit Listen sondern sinnvollen Objekten arbeiten - die "inneren Listen" könnten also z.B. einfach "Rechnungen" sein, und eine Rechnung hat einen Liste von Objekten und einen Gesamtpreis. Das ganze Modell ist dann sowohl aussagekräftig (bei Liste von Rechnungen weiß jeder, worum es geht), der Nachteil der wiederholten Preisberechnung ist weg (da der Preis für eine "Rechnung" fest steht) und du sparst das interessante Konstrukt mit der zweiten Liste.
 
Beste Antwort

Darnok

Mitglied
Code:
List<List<Flight>> routes = findRoutes();
List<Double> prices = new ArrayList<>();

double sum;

for (List<Flight> route : routes) {
sum = 0;
for (Flight flight : route) {
sum += flight.getPrize();
}
prices.add(sum);
}

und meine routes will ich jetzt nach den prices sortiert haben
ich hatte mal nur die prizes jetzt sortiert aber denke nicht das ich so weiter komme
Code:
List<Double> sortedPrices = new ArrayList<>(prices);
Collections.sort(sortedPrices);
 

Darnok

Mitglied
Alternativ zu deinem Weg mit der extra Liste gibt es zwei Wege, bei denen du das Problem einfach gar nicht hast:

Beim Liste sortieren einfach jedes Mal den Preis berechnen, (hat zwar den Nachteil, dass du bei jedem Vergleich den Preis ausrechnen musst, das kannst Du aber erstmal vernachlässigen).

Oder, was der deutlich sinnvollere Weg ist, nicht direkt mit Listen sondern sinnvollen Objekten arbeiten - die "inneren Listen" könnten also z.B. einfach "Rechnungen" sein, und eine Rechnung hat einen Liste von Objekten und einen Gesamtpreis. Das ganze Modell ist dann sowohl aussagekräftig (bei Liste von Rechnungen weiß jeder, worum es geht), der Nachteil der wiederholten Preisberechnung ist weg (da der Preis für eine "Rechnung" fest steht) und du sparst das interessante Konstrukt mit der zweiten Liste.
Vielen dank habe es jetzt in eine Klasse routCost umgewandelt da ich rechnung noch wo anders brauche und es funktioniert auch wenn ich noch nicht ganz durch das sortieren selbst durch steige xD


Java:
public class RoutCost {
    double totalCost;
    List<Flight> rout;

    public RoutCost(double totalCost,  List<Flight> rout) {
        this.totalCost = totalCost;
        this.rout = rout;
    }

    public double getTotalCost() {
        return totalCost;
    }
    public List<Flight> getRout() {
        return rout;
    }
}


Java:
List<List<Flight>> routes = findRoutes();
List<RoutCost> routCosts = new ArrayList<>();
double sum;

for (List<Flight> route : routes) {
    sum = 0;
    for (Flight flight : route) {
        sum += flight.getPrize();
    }
    routCosts.add(new RoutCost(sum, route));
}

routCosts.sort(Comparator.comparingDouble(RoutCost::getTotalCost));

wenns dir nicht ausmacht weißt du was diese : : da hinten beim sorten bzw comparen genau machen ? Danke ;)
 

KonradN

Super-Moderator
Mitarbeiter
wenns dir nicht ausmacht weißt du was diese : : da hinten beim sorten bzw comparen genau machen ?
Das mit den :: nennt sich Methodenreferenz.

Comparator.comparingDouble erwartet einen Parameter, der aus den zu sortierenden Elementen ein double "macht". Das könnte also auch eine Lambda Expression sein. Um aus einem Element das gewünschte Double zu bekommen, wäre dies ein e -> e.getTotalCost()
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
X bei ArrayListen in einer ArrayList werden alle gleich befüll Java Basics - Anfänger-Themen 6
X Multidimensionale Arraylisten Java Basics - Anfänger-Themen 1
S Verknüpfung von Arraylisten Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
feinperligekohlensaeure Arraylisten-Namen iterieren.. wie ? Java Basics - Anfänger-Themen 39
P Arraylisten nebeneinander ausgeben Java Basics - Anfänger-Themen 18
J .replace mit Arraylisten Java Basics - Anfänger-Themen 4
V Attribut aus aus jedem ArrayListen index auf Bildschirm ausgeben Java Basics - Anfänger-Themen 9
M Ein Array von Arraylisten Java Basics - Anfänger-Themen 4
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
D Zwei ArrayListen<String> vergleichen. Java Basics - Anfänger-Themen 11
Joew0815 Zwei ArrayListen mit einander vergleichen Java Basics - Anfänger-Themen 33
U Übersicht trotz mehrdimensionaler Arraylisten Java Basics - Anfänger-Themen 17
K Arraylisten auslesen, kommt nur Quatsch raus Java Basics - Anfänger-Themen 15
B Zusammenfügen von zwei Arraylisten Java Basics - Anfänger-Themen 11
J Ausgabe von verschachtelten ArrayListen Java Basics - Anfänger-Themen 2
L 2 ArrayListen vergleichen Java Basics - Anfänger-Themen 2
G Geschachtelte ArrayListen Java Basics - Anfänger-Themen 27
O ArrayListen in der OOP Java Basics - Anfänger-Themen 7
G Datenmodell aus ArrayListen ? Java Basics - Anfänger-Themen 24
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
J ArrayListen mit Name und Vater an JTree übergeben Java Basics - Anfänger-Themen 3
G Namen von ArrayListen dynamisch erzeugen Java Basics - Anfänger-Themen 4
G Mehrere Arraylisten in einer ArrayList speichern ? Java Basics - Anfänger-Themen 3
C ArrayListen in einer ArrayList der Grösse nach sortieren Java Basics - Anfänger-Themen 5
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
S Arbeitsfeld in gleich große Bereiche einteilen Java Basics - Anfänger-Themen 2
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
S Groß- und Kleinbuchstaben gleich behandeln Java Basics - Anfänger-Themen 3
F String length nicht gleich der Ausgabe Java Basics - Anfänger-Themen 10
J JTable Wert gleich überschreiben Java Basics - Anfänger-Themen 6
P OOP Testen ob 2 Strings gleich sind Java Basics - Anfänger-Themen 8
F Doppeltes Gleich? Java Basics - Anfänger-Themen 8
GadgetSofa .txt Datei erstellen und gleich wieder Löschen? Java Basics - Anfänger-Themen 12
K Variablen Instanzen gleich aber warum ? Java Basics - Anfänger-Themen 3
J Klassen Warum ist (a.equals(b)) gleich (a==b)? Java Basics - Anfänger-Themen 13
B Threads Geschwindigkeit der Befehle auf verschiedenen PCs gleich machen Java Basics - Anfänger-Themen 3
O Objekte gleich oder verschieden? Java Basics - Anfänger-Themen 14
D Frame schließt gleich alle Frames Java Basics - Anfänger-Themen 5
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
turmaline String teilen in gleich große strings Java Basics - Anfänger-Themen 15
D Strings sind ungleich obwohl sie in der Ausgabe gleich sind Java Basics - Anfänger-Themen 10
B Methoden Mein erstes Programm - und gleich Probleme Java Basics - Anfänger-Themen 6
D X Werte in ArrayList von Point Objekte alle gleich ? Java Basics - Anfänger-Themen 11
D Warum ist int a = 3*2+1*3; gleich 9 und nicht gleich 27 Java Basics - Anfänger-Themen 4
F While Schleife ausführen, wenn String gleich ist. Java Basics - Anfänger-Themen 2
M Problem mit größer oder gleich >= Java Basics - Anfänger-Themen 8
lumo warum double nicht gleich double ist??? Java Basics - Anfänger-Themen 5
feuervogel Datentypen Zwei Sets sind gleich, aber dann doch nicht Java Basics - Anfänger-Themen 9
T Border Layout alle mittleren felder gleich groß Java Basics - Anfänger-Themen 3
A [gelöst]Zwei Ausgaben, die eigentlich gleich sein sollten Java Basics - Anfänger-Themen 9
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
-horn- Mathe: Variable gleich Infinity, wie mit if rausfiltern? Java Basics - Anfänger-Themen 9
J Java plus exe gleich Java Basics - Anfänger-Themen 6
D Inhalt eines Dialogfeldes wird nicht gleich angezeigt? Java Basics - Anfänger-Themen 6
U "gleich gleich" oder equals Java Basics - Anfänger-Themen 9
M Variablennamen als Parameter gleich Var. als Klassenvariable Java Basics - Anfänger-Themen 2
N long geteilt durch long gleich null ? Java Basics - Anfänger-Themen 8
G testen ob int gleich null Java Basics - Anfänger-Themen 15
G int gleich long ? Java Basics - Anfänger-Themen 2
J JLabel gleich in einer Schriftfarbe anzeigen Java Basics - Anfänger-Themen 4
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
S Bilder gleich am Start zeichnen. Java Basics - Anfänger-Themen 15
R Ist ! gleich false? Java Basics - Anfänger-Themen 3
L int und double auf gleich prüfen? Java Basics - Anfänger-Themen 12
M Imagegroesse angeblich immer gleich 0 Java Basics - Anfänger-Themen 2
V Eingabe gleich als char Java Basics - Anfänger-Themen 3
B Zufallszahlen erzeugen die nicht gleich sind ;/ Java Basics - Anfänger-Themen 10
Silver-Blue Random aus ArrayList immer gleich Java Basics - Anfänger-Themen 9
R in einer TextArea den Cursor gleich anzeigen lassen Java Basics - Anfänger-Themen 3
richis-fragen 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 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

Ähnliche Java Themen


Oben