Array List Sortieren

Hey Leute ich habe ein Spiel, bei dem es eine Array Liste gibt mit gegnern, nun muss ich diese Array Liste so sortieren, dass die Gegner deren y position am höchsten ist, als erstes in der Liste stehen, hab von Objektorientierung leider nicht sehr viel Ahnung weshalb ich auf eure Hilfe angewiesen bin. :confused: Momentan mache ich das mit den Gegnern so for (Iterator<Zombie> iterator = zombie_liste.iterator(); iterator.hasNext();) { Zombie zombie = iterator.next(); } jetzt muss ichs noch so sortieren, dass die gegner nach ihr Position sortiert werden, und so in der richtigen Reihe auf den Bildschirm gebracht werden.

Schon mal danke für eure Antworten! :smiley:

Was du brauchst, ist ein Comparator für deine “Gegner-Klasse”, der nach deinem Wunsch sortiert. Dann kannst du ganz einfach die in Java “eingebaute” Collections.sort()-Funktion nutzen!

/** Comparator-Implementierung, die y-Koordinaten vergleicht */
public class ZombieYComparator implements Comparator<Zombie> {
  public static final Comparator<Zombie> ZOMBIE_Y_ASC = new ZombieYComparator();

  @Override
  public int compare(Zombie first, Zombie second) {
    return first.getY() - second.getY();
  }   
}

// Benutzen, Liste ist danach aufsteigend nach den y-Koordinaten
// der Zombie-Instanzen sortiert
Collections.sort(zombieList, ZombieYComparator.ZOMBIE_Y_ASC);