請教一個從Collection到Map保持排序順序不變的問題

wys1978發表於2002-10-21
一個簡單的類
public class Foo {
String valueA;
String valueB;
}

有3個這樣的物件按照以下的順序存在一個Collection c裡:
foo1: valueA = "kick"; valueB = "me";
foo2: valueA = "kiss"; valueB = "you";
foo3: valueA = "kill"; valueB = "he";

然後想生成一個Map m,m的key為foon的valueA,對應的value為foon的valueB
做法如下:
Map m = new HashMap();
Iterator i = collection.iterator();
while(i.hasNext()){
Foo element = (Foo)i.next();
m.put(element.valueA,element.valueB);
}

當用Map的keySet方法遍歷所有的元素時候,出來的順序已經和原來的Collection不一樣了,如果額外多加一個List來記錄key,是可以解決,但是總覺得Java的架構裡應該有更簡單的方法可以實現這樣的效果.

請大家幫忙,謝謝了!

相關文章