Hashtable
implements Map
。 Map.entrySet
函數返回Map.Entry
實例的集合(Set
),其中有getKey
和getValue
方法。
所以:
Iterator<Map.Entry> it;
Map.Entry entry;
it = yourTable.entrySet().iterator();
while (it.hasNext()) {
entry = it.next();
System.out.println(
entry.getKey().toString() + " " +
entry.getValue().toString());
}
如果你知道的類型Hashtable中的條目,您可以使用模板來消除上述toString
電話。例如,如果您的Hashtable被聲明爲Hashtable<String,String>
,entry
可能會被宣佈爲Map.Entry<String,String>
。
如果你可以用仿製藥相結合的模板,它是徹頭徹尾的短:
for (Map.Entry<String,String> entry : yourTable.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
即假定yourTable
是Hashtable<String,String>
。只是要說明Java在過去幾年中的發展到底有多遠,基本上不會失去其重要的Java性能。稍微OT:如果你不需要同步,使用HashMap
而不是Hashtable
。如果是這樣,請使用(謝謝,akappa!)。
一個更好的標題可能是:我如何列舉一個Hashtable的鍵和值 – 2010-02-07 07:52:42
@Lachlan:的確如此。 @OP:冒着改變它的自由。 – 2010-02-07 08:10:47