我总是得到ArrayList的最后一个值

时间:2016-05-04 09:14:17

标签: java arraylist

请在将其标记为重复之前阅读该帖子。

我不是Java专家

这是我想要做的简化代码:

import java.util.ArrayList;

public class Parameter {

    private static ArrayList<Integer> quantityArray = new ArrayList<>();

    public static void quantityPriorityValues() {
        int q = 0 ;
        for (int i = 0; i < 5 ; i++ ) {
            quantityArray.add(q);
            q++;
        }
    }

    public static ArrayList<Integer> getQuantityArray() {
        return quantityArray;
    }

    public void setQuantityArray(ArrayList<Integer> quantityArray) {
         this.quantityArray = quantityArray;
    }
}

public class Connection {

    public void getParameters () {
        i = 0;    
     Parameter.quantityPriorityValues();

        while (i < 5) {

            int quantity = Parameter.getQuantityArray().get(i);
            System.out.println(quantity);
            i++;

        }
    }

}

它总是打印出arraylist的最后一个值。 我检查了有关此问题的答案,例如此one和此one,他们都在static字段中说明问题。所以我尝试从static中移除ArrayList<Integer> quantityArray non-static但这意味着getter和setter也应该Connection,而且我无法在webpackJsonp([0],{ /***/ 0: /***/ function(module, exports, __webpack_require__) { __webpack_require__(1); __webpack_require__(74); module.exports = __webpack_require__(76); /***/ }, /***/ 76: /***/ function(module, exports) { "use strict"; import 'app/tools/typescriptImports.ts'; import * as mainScreenHelper from 'app/tools/mainScreenHelper'; import React from 'react'; import * as reactDom from 'react-dom'; import Router from 'react-router'; import createBrowserHistory from 'history/lib/createBrowserHistory'; import routes from 'app/tools/routes'; import 'style/app.scss'; import 'font-awesome/scss/font-awesome.scss'; mainScreenHelper.removeLoadingScreen(); mainScreenHelper.createReactApp(); /***/ } }); //# sourceMappingURL=app.js.map 类中调用getter。

我想要这个输出:0 1 2 3 4

但是我得到了这个输出:4

有没有人有其他解决方案?

1 个答案:

答案 0 :(得分:0)

在你的getParameters()函数中 创建一个ArrayList,如:

ArrayList<Integer> quantityArray = Parameters.getQuantityArray();

你可以改变你的while循环,如:

for (Integer i : quantityArray)
    System.out.println(i);

应该有效