我创建了一个代表图表的hashmap。哈希映射中的键是顶点,值是边。从我的hashmap中取出它的所有顶点并将它们存储在名为vertexDictionary的字典中。我现在想将顶点字典的所有值设置为False,但是我遇到了麻烦。我试图使用迭代器,但我的代码中出现了带有星号的错误。我的代码如下:
public void clearMarks(){
// Sets marks for all vertices to false.
Set set = graph.entrySet();
Iterator i = set.iterator();
while(i.hasNext()) {
Map.Entry g = (Map.Entry)i.next();
*this.graph.put(g.getKey(), false);*
}
}
答案 0 :(得分:0)
getKey()方法返回Object。问题是你没有施展它。假设您的密钥是整数,那么您应该将代码更改为:
this.graph.put((int) g.getKey(), false);
答案 1 :(得分:0)
您有一个vertexDictionay
,其中包含您感兴趣的所有顶点,以及您希望将它们设置为False
的每个顶点。
所以我假设您有一些数据结构,如Map<Integer, Boolean> vertexDictionay;
你应该能够
for (Map.Entry vertex : vertexDictionay.entrySet()) {
vertex.setValue(false);
}
foreach循环在引擎盖下使用了一个迭代器,如here所述。这修复了你的参数不匹配错误,并且更具可读性恕我直言