How to sort an array of objects(Points) in Java?

前端 未结 2 492
遥遥无期
遥遥无期 2021-01-21 01:03

So I wanna sort an array of Points using the built in sorting method, by a specific coordinate, say x. How can I do this? Heres a sample code:

Point A[] = new Po         


        
相关标签:
2条回答
  • 2021-01-21 01:38

    You can also use Apache Commons Bean Comparator

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

    And then do something like

    import org.apache.commons.beanutils.BeanComparator;
    
    Arrays.sort(A, new BeanComparator("x"));
    
    0 讨论(0)
  • 2021-01-21 01:46

    Point isn't Comparable so you'll need to write your own comparator and pass it in when calling Arrays.sort. Luckily, that's not too hard:

    class PointCmp implements Comparator<Point> {
        int compare(Point a, Point b) {
            return (a.x < b.x) ? -1 : (a.x > b.x) ? 1 : 0;
        }
    }
    
    Arrays.sort(A, new PointCmp());
    
    0 讨论(0)
提交回复
热议问题