2012-06-17 78 views
0

排序點的最佳方法是什麼(首先基於x座標,如果x相同,那麼y座標相同,如果y相同,那麼基於z座標等)。在java中沒有實現排序算法?java中的排序點(2d,3d等)

在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()); 

在此先感謝。 Shantanu

回答

5

您不需要實現排序算法。你只需要實現一個比較器,然後可以使用Collections.sort()

請參閱Java教程中的Object Ordering以獲取更多信息。

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.