3 回答

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

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