Java comment trier une liste de tableaux d'objets

Je suis à l'aide de la Classe Point pour gérer une liste de (x,y) les coordonnées et j'ai besoin de les trier dans l'ordre de X.

J'ai lu en ligne pour faire une nouvelle classe PointCompare qui implémente Comparateur, cependant je ne suis pas sûr de savoir comment cela fonctionne et, par conséquent, j'ai une erreur de compilation dans le sortByXCoordinates méthode.

Aide serait appréciée beaucoup, et tous les commentaires sont les bienvenus, merci d'avance.
Ici est une partie de mon code:

import javax.swing.JOptionPane;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
//import java.util.Iterator;
public class ConvexHullMain {
private Point coordinates = new Point(0, 0);
private final int MAX_POINTS = 3;
private ArrayList<Point> coordinateList = new ArrayList<Point>();
public void inputCoordinates() {
String tempString; //temp string for JOptionPane
int tempx = 0;
int tempy = 0;
for (int i = 0; i < MAX_POINTS; i++) {
try {
//input x coordinates
tempString = JOptionPane.showInputDialog(null,
"Enter X coordinate:");
tempx = Integer.parseInt(tempString);
//input y coordinates
tempString = JOptionPane.showInputDialog(null,
"Enter Y coordinate:");
tempy = Integer.parseInt(tempString);
coordinates.setLocation(tempx, tempy);//set input data into
//coordinates object
coordinateList.add(coordinates.getLocation()); //put in
//arrayList
} //end Try
catch (NumberFormatException e) {
System.err.println("ERROR!");
main(null);
} //end catch
}//end for loop
}
public void displayPoints() {
for (int i = 0; i < MAX_POINTS; i++) {
JOptionPane.showMessageDialog(null, "Point number " + (i + 1)
+ " is: " + coordinateList.get(i));
}
//alt method
//Iterator i = coordinateList.iterator();
//String outputTemp;
//while (i.hasNext()) {
//outputTemp = i.next().toString();
//JOptionPane.showMessageDialog(null, "Point number " + " is: "
//+ outputTemp);
//}
}
/**
* This sorts the points by the X coordinates
*/
public void sortByXCoordinates(){
coordinateList.sort(coordinates, new PointCompare());
}
public class PointCompare implements Comparator<Point> {
public int compare(Point a, Point b) {
if (a.x < b.x) {
return -1;
} else if (a.x > b.x) {
return 1;
} else {
return 0;
}
}
}
public static void main(String[] args) {
ConvexHullMain main = new ConvexHullMain();
main.inputCoordinates();
main.displayPoints();
}
}
InformationsquelleAutor user492837 | 2010-11-16