Java 中的迭代字典

2022-09-03 08:43:45

我有一本java字典:

protected Dictionary<String, Object> objects;

现在我想获取字典的键,以便我可以在for循环中使用get()获取键的值:

for (final String key : this.objects) {
    final Object value = this.objects.get(key);

但这行不通。:(有什么想法吗?

托马斯

PS:我需要变量中的键和值。


答案 1

首先要做的事情。这个类是过时的,方式。您应该改用:DictionaryMap

protected Map<String, Object> objects = new HashMap<String, Object>();

一旦这个问题得到解决,我认为这就是你的意思:

for (String key : objects.keySet()) {
    // use the key here
}

如果您打算同时循环访问键和值,最好执行以下操作:

for (Map.Entry<String, Object> entry : objects.entrySet()) {
    String key = entry.getKey();
    Object val = entry.getValue();
}

答案 2

如果你必须使用字典(例如osgi felix框架托管服务),那么以下工作。

public void updated(Dictionary<String, ?> dictionary) 
    throws ConfigurationException {

    if(dictionary == null) {
        System.out.println("dict is null");
    } else {
        Enumeration<String> e = dictionary.keys();
        while(e.hasMoreElements()) {
            String k = e.nextElement();
            System.out.println(k + ": " + dictionary.get(k));
        }
    }
}