对点进行排序的最佳方法是什么(首先基于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());
先谢谢。 山塔努
答案 0 :(得分:5)
您无需实施排序算法。您只需要实现一个比较器,然后可以与Collections.sort()
一起使用。
有关详细信息,请参阅Java教程中的Object Ordering。
答案 1 :(得分:1)
Java中几乎没有选项。
Collections.sort(List l)
使用java.lang.Comparable // For sorting only on the basis of one property
Collections.sort(List l, Comparator c)
使用java.util.Comparator // For sorting in more than one way
如果需要唯一性,则使用排序时使用TreeSet()
TreeSet() // Sorting in Natural order
TreeSet(Comparator c) // Sorting in more than one way.