![](/img/trans.png)
[英]In a Java hashtable with objects as values, how do I return the object values?
[英]How do I enumerate the keys and values of a Hashtable?
我有个问题 ; 我有一些数据,例如用Hashtable
显示它:
Enumeration keys;
keys=CellTraffic_v.elements();
while(keys.hasMoreElements())
outputBuffer.append(keys.nextElement()+"\n\n");
但是它向我展示了价值观我如何才能一起展示价值观和钥匙? 例如这个
如果我的键是“ A”,值是“ B”,请告诉我:
A B
谢谢 ...
Hashtable
实现Map
。 Map.entrySet
函数返回具有getKey
和getValue
方法的Map.Entry
实例的集合( Set
)。
所以:
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());
}
如果您知道哈希表中条目的类型,则可以使用模板消除上面的toString
调用。 例如,如果您的哈希表被声明为Hashtable<String,String>
,则entry
可以声明为Map.Entry<String,String>
Hashtable<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
。 如果这样做,请使用ConcurrentHashMap
(感谢akappa!)。
你有正确的钥匙吗? 使用键从地图中获取值,您便拥有了所有映射。 例如,在Java中,将String作为键的类型:
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
。
entrySet()返回Hashtable中的值的枚举。
keySet()返回Hashtable中的键的枚举。
entrySet()以Set形式返回条目(键和值)
for( Iterator iter=hash.keySet().iterator(); iter.hasNext(); ) {
String key = (String) iter.next();
String value = (String) hash.get( key );
}
for( Iteration iter=hash.entrySet().iterator(); iter.hasNext(); ) {
Map.Entry entry = (Map.Entry) iter.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
}
或使用泛型,在这种情况下,您的哈希是HashMap <String,String>
for( String key : hash.keySet() ) {
String value = hash.get( key );
}
for( Map.Entry entry : hash.entrySet() ) {
String key = entry.getKey();
String value = entry.getValue();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.