我用最后插入的元素覆盖了我的ArrayList中的所有元素。如果我将数字1,2,3,4,5,6插入第一个元素,然后将7,8,9,10,11,12插入第二个元素,我最终用第一个元素覆盖第一个元素来自第二个元素的值。我最终得到了一个包含7,8,9,10,11,12两个元素的List。我已经看了一些其他的答案,从我收集的内容来看,这与添加引用而不是值相关,但我尝试了很多事情但没有成功。我只是在用尽了我的选择之后才尝试发帖提问。任何帮助将不胜感激,并提前感谢。
以下是我遇到问题的相关部分。
private View.OnClickListener submitListener = new View.OnClickListener() {
ArrayList<int[]> tempArrayList = new ArrayList<int[]>();
int[] ticketArray = new int[6];
int counter = 0;
int tempCounter = 0;
PowerballPoolManagerApplication app = new PowerballPoolManagerApplication();
@Override
public void onClick(View view) {
for (EditText editText : editTextList) {
if (!editText.getText().toString().matches("")) {
int currentNumber = Integer.parseInt(editText.getText().toString());
ticketArray[tempCounter] = Integer.parseInt(editText.getText().toString());
counter++;
tempCounter++;
if (counter > 0 && counter % 6 == 0) {
tempArrayList.add(ticketArray);
tempCounter = 0;
}
答案 0 :(得分:1)
从外观上看,你要为两个元素添加相同的数组。如果您希望数组是唯一的,您需要克隆它,或者每次迭代都单独构建它。
这意味着在循环中创建ticketArray
检查编辑文本值。