2014-04-25 18 views
0

在Java中,如何使用Arrays.sort()以相反的順序對float []數組進行排序?或者至少有一些功能使用相同的算法。對原始類型的數組進行降序排列

請避免使用Float而不是float。在數組被排序後逆轉數組也不是一種選擇,因爲它是非常關鍵的一段代碼。

+0

我很困惑,你說_nondecreasingly_我把它翻譯成'越來越',但是你用相反的順序編寫_sort [...]。那麼你到底是什麼? –

+0

哦,我會解決它。我只是意味着逆序,所以遞減。 – Setzer22

+0

[Java Array Sort descending?]的可能重複(http://stackoverflow.com/questions/1694751/java-array-sort-descending) – Betlista

回答

1

我建議從Arrays.sort(float [])中獲取源代碼,將其複製到項目中的新方法中,然後在相關位置修改它以反轉(否定)比較結果。

它應該完全返回你想要的 - 一個反向排序的數組,使用完全相同的算法。

+0

這看起來像是人們可以做的最好的事情來真正解決這個問題。太糟糕的Java庫不能實現這個開箱即用... – Setzer22

0
Arrays.sort(array,Collections.reverseOrder()); 
+2

這不適用於原始類型數組。編譯器會抱怨,因爲沒有浮點比較器,只是Float。這是消息:「類型數組中的方法sort(float [])不適用於參數(float [],比較器)」 – Setzer22

1

Javas Arrays.sort()ArrayUtils.reverse()來自Apache Commons。

+0

對不起,但我已經在我的問題中聲明:「正在排序後的數組不是一個選項,因爲它是非常關鍵的一段代碼。「 – Setzer22

+0

@ Setzer22 _非常重要的p.o.c._,好吧,但是您需要多久才能遍歷數組?你是否以索引方式做?如果是這樣,爲什麼不分類和恢復索引? –

+0

反轉陣列應該很快完成,而不是排序。請參閱http://stackoverflow.com/a/217477/748524。另一種方法是將原語包裝成Floats,但你不想這樣做。 – Stephan