3 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
Java 中的數(shù)組不會自動排序(一般的集合也不會)。對于您需要調(diào)用的數(shù)組
Arrays.sort(boxes);
如果使用集合,您可以使用
Collections.sort(boxList);
或者使用SortedSet / Map代替(例如TreeSet)。這些類型的集合將在插入時(shí)自動對其元素進(jìn)行排序并保持自然順序。
正如@AndyTurner 所指出的, Sets and Maps 當(dāng)然會丟棄重復(fù)項(xiàng)(取決于您對hashCode
and的實(shí)現(xiàn)equals
),這可能是您不想要的。
This question and it's very good answer也相關(guān),并提供了對Java中排序集合的一個(gè)很好的概述。

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
僅實(shí)現(xiàn)Comparable
意味著該類為其實(shí)例提供了一些默認(rèn)順序。這并不意味著每個(gè)數(shù)組或集合都必須自動應(yīng)用該 order。
例如,String
類還實(shí)現(xiàn)Comparable
了提供字典順序的功能,但您仍然可以決定您的字符串應(yīng)該放在數(shù)組中的哪個(gè)位置。這是可能的,因?yàn)楫?dāng)你這樣做時(shí)
array[index] = element;
決定element
將放置在哪里只取決于index
,而不是任何特性element
。
要使用其元素的默認(rèn)順序?qū)?shù)組進(jìn)行排序,您可以使用Arrays.sort(o);
,否則您的數(shù)組o
將在索引指定的位置保存元素。

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
你實(shí)際上有幾個(gè)不同的選擇。其中一些正在創(chuàng)建您自己的排序功能,如前所述,或者使用帶有適當(dāng)比較器的集合排序。您可能需要查看此 SO 主題以獲取有關(guān)該主題的更多詳細(xì)信息。另外,請記住在發(fā)布之前使用搜索,這是在鍵入“java sort by object field”或類似內(nèi)容后彈出的第一件事。
添加回答
舉報(bào)