2012-04-11 79 views
4

我一直在環顧四周,但其中大多數都指向一個java TreeMap。唯一的問題是我不想將任何Scala轉換成java並返回。如果真的沒有辦法,那麼我可以,但是我想從一些專業人士那裏聽到這個問題只是爲了100%肯定,並且將來在這裏爲其他人提出這個問題,以便他們遇到類似問題時會偶然發現問題。提前致謝。Scala HashMap:迭代插入順序?

編輯:

類型:scala.collection.mutable.HashMap [字符串,字符串]

+0

(雖然在這種情況下並不重要,但要確切地說明類型;例如,在某些時候包括FQN,例如Java的HashMap,例如可變HashMap和不可變HashMap) – 2012-04-11 20:34:56

+0

我很抱歉。我現在將添加它。 – Andy 2012-04-11 20:35:15

+1

請注意,TreeMap不保證*插入順序* - 它保證*有序順序*,因爲它總是有序排列。 – 2012-04-11 20:39:16

回答

10

一般來說,斯卡拉HashMap不保證原來的順序。

但是,有LinkedHashMap,其中指出:「此類的迭代器和所有遍歷方法按照它們插入的順序訪問元素。」

你正在處理的確切類型是什麼?如果您可以決定使用哪個實施方案,那麼您可以選擇一個維護訂單。如果您剛剛獲得HashMap類型的東西,那麼您運氣不好。

+0

真的。我正在處理一個scala.collection.mutable.HashMap但是如果Scala有一個LinkedHashMap,我可以用它來代替。我只需要一種維護秩序的方法。 – Andy 2012-04-11 20:34:33

+0

@安迪,是的,如果你能控制哪一種實現方式,何時繼續使用有序的實現。 – dhg 2012-04-11 20:36:52

+1

非常感謝。我不知道斯卡拉有這個,API非常難以閱讀。非常感激。 – Andy 2012-04-11 20:37:52