Es scheint, dass Sie ein Java-bezogenes Problem haben. Um Ihnen beim Sortieren zu helfen In der Java-Objektprogrammierung gibt es ein Konzept für Methodenüberschreibung und Schnittstellen.
Spezielle Schnittstelle zum Sortieren ist Comparator, Sie können ihn entweder inline in Methode wie folgt setzen.
Collections.sort(pawns ,new Comparator<Student>(){
public int compare(Pawn1 p1,Pawn2 p2){
// Write your logic here.
//ie.:
return p1.score - p2.score;
//or for different order
return p2.score - p1.score;
}});
wenn dieser Komparator Rückgabewert == 0 ist der Wert gleich sind; Wenn Wert < 0 bedeutet, p1 ist größer als p2, also tauschen Sie sie aus.
Oder setzt ihn in Ihrer Objektklasse wie:
Class Pawn implements Comparator {
private String name;
private Position[][] posXY;
private int value;
....
Pawn() { ... }
...
public int compare(Pawn1 p1,Pawn2 p2){
return p1.value- p2.value;
}
}
dann in Ihrem Code können Sie anrufen, wie Sie ursprünglich gedacht:
pawns.sort();
Pawn best = pawns.get(0);
und wie erwartet sollten Sie ein Maximalwert Pawn von ArrayList.
Der obige Code ist nur Beispiel und erfordert tunning. Aber Sie sollten jetzt einen guten Überblick bekommen, da Java keine Ahnung hat, wie Objekte, die von einem Programmierer definiert wurden, sortiert werden, es sei denn, er implementiert die Komparatorlogik für die Sammlungssortierung.
für externe Referenz Ich schlage vor, ein einfaches Beispiel auf tutorialpoint
Das Duplizieren eines Arrays und das Sortieren ist eine sehr teure Methode, um den größten Wert auszuwählen. – Tenfour04