Ordenando una lista de puntos con Java

Tengo una lista de objetos puntuales, que quiero ordenar por una determinada coordenada, por ejemplo, los valores x. ¿Proporciona Java algún mecanismo útil o debería utilizar uno de los algoritmos de ordenación comunes?

Sí, crea un Comparator personalizado y úsalo para ordenar la lista de puntos

 class Point{ private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public Point(int x, int y) { this.x = x; this.y = y; } public Point() { } } 

 List points = new ArrayList(); points.add(new Point(1, 2)); points.add(new Point(60, 50)); points.add(new Point(50, 3)); Collections.sort(points,new Comparator() { public int compare(Point o1, Point o2) { return Integer.compare(o1.getX(), o2.getX()); } }); 

En la clase Point , debe implementar la interfaz Comparable con el tipo genérico y usar Collections.sort (paquete java.util) para ordenar List

Asumir:

 class Point implements Comparable{ int compareTo(Point other){ /* your logic */} } List list = new ArrayList(); /* adding points */ Collections.sort(list); 

Usted debe hacer su clase de punto para implementar la interfaz Comparable o proporcionar el método sort () con su propio objeto Comparator, que le dice a sort () cómo ordenar sus objetos. Hay muchos ejemplos por aquí.

Puede usar algo así como un Bean Comparator para no tener que seguir creando comparadores personalizados.