如何在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"));