如何在Java中对对象数组(点)进行排序?

所以我想使用内置的排序方法,通过特定的坐标,比如x,对点数组进行排序。 我怎样才能做到这一点? 下面是一个示例代码:

Point A[] = new Point[10]; // ... Initialize etc. Arrays.sort(A, x-coordinate); 

Point Class中是否有内置的x坐标比较器? 如果没有,我该如何创建并使用它。 一个例子就是很棒。

谢谢。

Point不是Comparable所以你需要编写自己的比较器并在调用Arrays.sort时传入它。 幸运的是,这不是太难:

 class PointCmp implements Comparator { int compare(Point a, Point b) { return (ax < bx) ? -1 : (ax > bx) ? 1 : 0; } } Arrays.sort(A, new PointCmp()); 

您还可以使用Apache Commons Bean Comparator

http://commons.apache.org/beanutils/apidocs/org/apache/commons/beanutils/BeanComparator.html

然后做类似的事情

 import org.apache.commons.beanutils.BeanComparator; Arrays.sort(A, new BeanComparator("x"));