Objekte nach einem ihrer Attribute sortieren

geisendorf

Grünschnabel
Hallo,

bin noch ziemlicher Java Neuling und versuche Multi-Agenten Simulation zu lernen.

Ich habe mehrere Objekte mit verschiedenen Attributen und möchte die nach einem der Attribute sortieren (einem Zahlenwert), so dass ich hinterher auf den ärmsten und reichsten Agenten zugreifen kann.

Wie kriege ich diese Angaben in eine Liste (bzw. Array?) und dann nach dem Vorrat sortiert?

Hier die Codeangaben:

Agent2 typ = new Agent2();
Agent2 mädel = new Agent2();
Agent2 kumpel = new Agent2();

// Zuweisung von Daten für die Attribute der Agenten.

typ.freund = mädel;
typ.vorrat = 0.5;
typ.blutzucker = .02;
typ.gewicht = 80.;

mädel.freund = kumpel;
mädel.vorrat = 0.1;
mädel.blutzucker = .02;
mädel.gewicht = 59.;

kumpel.freund = mädel;
kumpel.vorrat = 0.7;
kumpel.blutzucker = .03;
kumpel.gewicht = 72.;

Wär klasse, wenn das jemand beschreiben kann.

Danke

Sylvie
 
Agenten sind grad groß in Mode, was?

Die Klasse Arrays besitzt eine methode sort, die eine Liste von Typen aufnimmt und einen Comparator für diesen Typ. Das kann dann so aussehen:

Java:
Arrays.sort(agenten, new Comparator<Agent>() {

  public int compare(Agent first, Agent second) {
    // Vergleich hier implementieren und was negatives zurückgeben, 
    // wenn first kleiner ist, was positives wenn second kleiner ist bzw. 
    // 0 wenn beide gleich sind.
  }
});
 
Zuletzt bearbeitet:
Du hast recht. Undeutlich formuliert. Hast du ein Array -> Arrays.sort(..), hast du irgend einen Collectiontyp -> Collections.sort(..).

Gruß
Ollie
 
Zurück