【问题标题】:Java - Initialize Variable on ConditionJava - 根据条件初始化变量
【发布时间】:2014-10-13 18:25:57
【问题描述】:

我正在编写一个Java 程序来模拟A* 算法,并且需要将两个参数传递给我的a() 函数,initial stategoal state。但是,为了确保我有正确的目标状态,我检查它的启发式值是否为 0。如果是,那么我标记 boolean goal == true 否则我将其标记为 false。

我想知道,有什么方法可以通过检查它的布尔值来将变量 State goal 初始化为目标状态?

for(int i = 0; i < states.size(); i++)
    states.get(i).isGoal();

states 是算法状态的 HashMap,isGoal() 是根据启发式值设置每个状态的布尔标志的方法。

【问题讨论】:

  • 无法理解你的问题,但是在 for 里面你可以初始化任何你想要的对象:for(int i = 0; i
  • 对于我的 HashMap 中的每个状态,该状态都有一个名为 goal 的布尔值。在上面的for loop 中,我将每个状态标志设置为真或假。我想知道是否可以根据这些标志的值初始化变量。

标签: java search artificial-intelligence


【解决方案1】:

我想你想要这样的东西:

for(int i = 0; i < states.size(); i++) {
        if(map.get(i).isGoal()){
            //instantiate wherever you want if goal is true
            map.get(i).setGoal();
        } else {
            //instantiate wherever you want if goal is false
        }
    }

【讨论】:

    【解决方案2】:

    让您的isGoal() 返回一个布尔值并在检查isGoal 标志后设置State goal。即

    for(int i = 0; i < states.size(); i++)
        if(map.get(i).isGoal()){
            map.get(i).setGoal();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-21
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多