通过X值对List <point>进行排序的有效方法

时间:2017-08-04 10:36:48

标签: java sorting

我正在进行一些排序操作,我使用的数据结构是List<Point>

现在,此Point有两个值xy,并且这些值不是按排序方式给出的。

我必须根据x的值以有效的方式对此List<Point>进行排序,增加x或减少x。

一种解决方案可以是解析每个值的强力方法,并将该值与所有其他值进行比较以找到每次迭代中的最小值,但这将是一种低效的方法。

可以使用其他解决方案解决此问题。

编辑:点来自org.opencv.core包。

1 个答案:

答案 0 :(得分:6)

我假设你在谈论班级java.awt.Point, 因此有getX()方法。

使用Java 8,您可以按x

对点进行排序
List<Point> points = ...;
points.sort(Comparator.comparing(Point::getX));

在较低版本的Java中,例如7,您可以实现Comparator来实现此目的:

List<Point> points = ...;
Collections.sort(points, new Comparator<Point>() {
    @Override
    public int compare(Point p1, Point p2) {
        return Double.compare(p1.getX(), p2.getX());
    }
});