【问题标题】:for loop with ArrayList in javajava中带有ArrayList的for循环
【发布时间】:2016-05-14 16:56:19
【问题描述】:

我有一个 Productclass 存储在 ArrayList myValues 中。 我想遍历每个第 x 个(例如每个第 3 个)元素并让用户 向该类添加一些整数值。

在我的 for(...) 中,他告诉我:赋值的左侧必须是变量。我想知道我是否搞砸了一些 .get(j) 或者我是否必须同步我的方法以使大小不会改变(没有多线程但也许这就是我收到错误的原因? ) 或者解决方案更简单。

谢谢

public void prioPerProduct (){

    System.out.println("");
    System.out.println("Please enter storing and upgrading cost:");

    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);

    int storingCost = 0;
    int ruestCost = 0;
    int countRes = countRessources;
    int sizemyValues = myValues.size();
    for(int j = 0; j < sizemyValues; j = j+countRes){

        System.out.println("Please enter storingcost " + myValues.get(j).getProduct() +":" );
        try {
            storingCost = Integer.valueOf(br.readLine());
        } catch (NumberFormatException e) {
            System.out.println("No number entered");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("No number entered");
            e.printStackTrace();
        }

        System.out.println("Please enter upgradingcost " + myValues.get(j).getProduct() +":" );
        try {
            ruestCost = Integer.valueOf(br.readLine());
        } catch (NumberFormatException e) {
            System.out.println("No number entered");
            e.printStackTrace();
        } catch (IOException e) {
            System.out.println("No number entered");
            e.printStackTrace();
        }

        myValues.get(j).setstoringCost(storingCost);
        myValues.get(j).setupgradingCost(ruestCost);


    }


}

【问题讨论】:

  • 您能提供错误的完整堆栈跟踪吗?
  • nvm,它现在可以工作了,没有改变任何东西,但突然就可以了;)

标签: java for-loop arraylist


【解决方案1】:

赋值左边一定是变量一般是这样造成的:

methodCall() = somvalue...

左边必须是变量而不是方法调用。您的代码在这方面看起来不错。
声明模型类和完整堆栈跟踪的代码更有帮助。

【讨论】:

    【解决方案2】:

    使用 set 方法更改 ArrayList 内对象的值。

    myValues.set(j,myValues.get().setstoringCost(storingCost));
    myValues.set(j,myValues.get().setupgradingCost(ruestCost));
    

    【讨论】:

      猜你喜欢
      • 2012-10-09
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      相关资源
      最近更新 更多