我正在编写一个Java程序来模拟A*算法,需要向我的a()
函数传递两个参数,初始状态
和目标状态
。然而,为了确保我有正确的目标状态,我会检查它的启发式值是否为0。如果是的话,我会将boolean goal
标记为true,否则标记为false。
我想知道,有没有办法通过检查它的布尔值来初始化一个变量State goal
到那个目标状态?
for(int i = 0; i < states.size(); i++) states.get(i).isGoal();
states
是算法的状态HashMap,isGoal()
是一个方法,根据其启发式值设置每个状态的布尔标志。
回答:
我想你想要的是这样的代码:
for(int i = 0; i < states.size(); i++) { if(map.get(i).isGoal()){ //如果目标为true,在你想要的地方实例化 map.get(i).setGoal(); } else { //如果目标为false,在你想要的地方实例化 } }