0

什么是对点进行排序的最佳方法(首先基于 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());

提前致谢。山塔努

4

2 回答 2

5

您不需要实现排序算法。您只需要实现一个比较器,然后可以将其与Collections.sort().

有关更多信息,请参阅Java 教程中的对象排序

于 2012-06-17T12:10:33.090 回答
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.
    
于 2012-06-17T12:20:12.793 回答