Classificando uma lista de pontos com Java

Eu tenho uma lista de objects pontuais, que eu quero classificar por uma determinada coordenada, digamos os valores x. O Java fornece algum mecanismo útil ou devo me aproveitar de um dos algoritmos de sorting comuns?

Sim, crie um Comparator personalizado e use-o para classificar a lista de pontos

 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()); } }); 

Na class Point você deve implementar a interface Comparable com o tipo genérico e usar Collections.sort (pacote java.util) para classificar a List

Assumir:

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

Você deve fazer sua class de ponto para implementar a interface Comparable ou fornecer o método sort () com seu próprio object Comparator, que diz a sort () como ordenar seus objects. Há muitos exemplos por aqui.

Você pode usar algo como um Bean Comparator para não precisar criar Comparadores personalizados.