【发布时间】:2015-05-16 02:03:59
【问题描述】:
我得到了以下格式的 2 个文件(节点和成本)
节点文件为(Startnode, endnode)
A B
A C
成本文件为(节点,成本)
A 6
B 5
C 8
如果用户指定的起始节点是'A',那么下面的方法应该在节点文件中搜索A,然后添加对应的结束节点(本例中为B,C)
到列表neighbournodes,如果这些末端节点与成本文件中的节点匹配,则应将那些相应的成本(在本例中为5、8)添加到列表h_cost
所以,我得到了以下循环来执行此操作。我的 neighbournodes 工作正常(即它正在输出 B、C)但不知何故我的 h_cost 不输出 5、8 而是输出空列表。
for(int i=0; i<size; i++) {
if(startnode.equalsIgnoreCase(nodes[i].getStartNode()))
{
neighbournodes.add(nodes[i].getEndNode());
int newi = i;
if(nodes[newi].getEndNode().equalsIgnoreCase(cost[i].getNode()))
{
h_cost.add(cost[i].getCost());
}
}
}
System.out.println("neighbouring nodes are "+neighbournodes);
System.out.println("H_cost is "+h_cost);
我不确定我的循环哪里出错了,谁能告诉我哪里出错了?我应该使用增强的 for 循环吗?
【问题讨论】:
-
我们不知道你是如何定义你在这个 for 循环中使用的函数的..
-
你能把
getStartNode()、getEndNode()、getCost()的方法贴出来吗?还有你在哪里分配startnode、nodes和cost变量
标签: java if-statement for-loop