我可以通过Properties对象枚举时删除元素吗?

bil*_*llu 2 java

我可以通过Properties对象枚举时删除元素吗?

pol*_*nts 5

PropertiesimplementsMap<Object,Object>,所以你可以迭代Set.iterator()Map.entrySet(),并调用Iterator.remove()某些条目.

    Properties prop = new Properties();
    prop.put("k1", "foo");
    prop.put("k2", "bar");
    prop.put("k3", "foo");
    prop.put("k4", "bar");

    System.out.println(prop); // prints "{k4=bar, k3=foo, k2=bar, k1=foo}"

    Iterator<Map.Entry<Object,Object>> iter = prop.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry<Object,Object> entry = iter.next();
        if (entry.getValue().equals("bar")) {
            iter.remove();
        }
    }
    System.out.println(prop); // prints "{k3=foo, k1=foo}"
Run Code Online (Sandbox Code Playgroud)

你为什么要打电话的原因remove()iterator()是因为你不想引起ConcurrentModificationException.

相关问题


许多初学者经常质疑interfaceJava中的价值:这是一个很好的例子来展示它的强大interface程度.Properties implements Map<Object,Object>,除非另有说明,否则你可以用a做的所有事情Map,你可以做一个Properties.上述问题中的信息与您的情况直接相关并直接适用.