我有个问题 ; 我有一些数据,我用Hashtable
例如我写的:
Enumeration keys;
keys=CellTraffic_v.elements();
while(keys.hasMoreElements())
outputBuffer.append(keys.nextElement()+"\n\n");
Run Code Online (Sandbox Code Playgroud)
但它只是告诉我价值如何能够将价值观和关键点展示在一起?例如这个
如果我的钥匙是"A"而我的价值是"B",请告诉我:
A B
Run Code Online (Sandbox Code Playgroud)
谢谢 ...
T.J*_*der 18
Hashtable实施Map.该Map.entrySet函数返回一个具有和方法Set的Map.Entry实例的collection().getKeygetValue
所以:
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());
}
Run Code Online (Sandbox Code Playgroud)
如果您知道Hashtable中条目的类型,则可以使用模板来消除toString上面的调用.例如,entry可以声明Map.Entry<String,String>,如果你的Hashtable的声明Hashtable<String,String>.
如果你可以将模板与泛型组合在一起,那就简短了:
for (Map.Entry<String,String> entry : yourTable.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)
假设yourTable是一个Hashtable<String,String>.只是展示了Java在过去几年里走了多远,基本上没有失去其必要的Java-ness.
稍微OT:如果您不需要同步,请使用HashMap而不是Hashtable.如果你这样做,请使用ConcurrentHashMap(谢谢,akappa!).
你有钥匙吗?使用键从地图中获取值,并且您拥有所有映射.例如,在Java中使用String作为键的类型:
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
Run Code Online (Sandbox Code Playgroud)
.