我有这段代码,想要将它从每个循环转换为常规循环
for(Coordinate neighbors : getNeighbors(current)){
if(!previous.containsKey(neighbors)){
previous.put(neighbors, current);
list.add(neighbors);
}
}
对不好的规格表示抱歉。 getNeighbors返回一组坐标
答案 0 :(得分:2)
在不知道getNeighbors(current)
返回什么类型的情况下很难给出最佳答案,但是你总是可以使用显式迭代器创建一个for循环:
for(Iterator<Coordinate> iter = getNeighbors(current).iterator(); iter.hasNext();){
Coordinates neighbors = iter.next();
if(!previous.containsKey(neighbors)){
previous.put(neighbors, current);
list.add(neighbors);
}
}
答案 1 :(得分:1)
如果没有合理解释你正在做什么,我无法提供比这更好的答案,但它给出了图片。
如果是数组
for(int i=0; i<getNeighbors(current).length; i++){
if(!previous.containsKey(getNeighbors(current)[i])){
previous.put(getNeighbors(current)[i], current);
list.add(getNeighbors(current)[i]);
}
}
如果是ArrayList
for(int i=0; i<getNeighbors(current).size(); i++){
if(!previous.containsKey(getNeighbors(current).get(i))){
previous.put(getNeighbors(current).get(i), current);
list.add(getNeighbors(current).get());
}
}