# Objekte nach einem ihrer Attribute sortieren



## geisendorf (23. Januar 2008)

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


----------



## Oliver Gierke (23. Januar 2008)

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:


```
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.
  }
});
```


----------



## Anime-Otaku (23. Januar 2008)

Oliver Gierke hat gesagt.:


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



Oder wenn du das in ner ArrayList/List/Vector hast gibts auch noch das zugehörige equivivalent Collections.sort


----------



## Oliver Gierke (23. Januar 2008)

Du hast recht. Undeutlich formuliert. Hast du ein Array -> Arrays.sort(..), hast du irgend einen Collectiontyp -> Collections.sort(..).

Gruß
Ollie


----------

