在java中对点进行排序(在2d,3d等)

时间:2012-06-17 12:08:13

标签: java sorting

对点进行排序的最佳方法是什么(首先基于x坐标,如果x在y坐标上是相同的,如果y相同则基于z坐标,依此类推。)在java中没有实现排序算法?

在c ++中,可以在对的帮助下轻松完成(如下)。

对于2D:

Vector < pair < int,int > > plane;
sort(plane.begin(),plane.end())

对于3D:

Vector < pair < int,pair < int,int > > > space;
sort(space.begin(),space.end());

先谢谢。 山塔努

2 个答案:

答案 0 :(得分:5)

您无需实施排序算法。您只需要实现一个比较器,然后可以与Collections.sort()一起使用。

有关详细信息,请参阅Java教程中的Object Ordering

答案 1 :(得分:1)

Java中几乎没有选项。

  1. Collections.sort(List l)

    使用java.lang.Comparable // For sorting only on the basis of one property

  2. Collections.sort(List l, Comparator c)

    使用java.util.Comparator // For sorting in more than one way

  3. 如果需要唯一性,则使用排序时使用TreeSet()

    TreeSet()   // Sorting in Natural order
    
    TreeSet(Comparator c)   // Sorting in more than one way.