如何使用ArrayList存储多行信息?

时间:2015-12-25 16:07:29

标签: java arrays for-loop arraylist

我创建了以下代码:

int storagevar= arrayList.get(0);

for (int j=0; z<(storagevar-1); j++){
  someString= normalArray[j];
}

此代码查看ArrayList并获取其中的第一个元素,该元素表示包含array的第二个(正常)String中的索引。然后,它使用此数字从第二个数组中获取信息,并将其存储在另一个String

这段代码完全没问题;它是造成问题的下一个因素。

上面的代码假设ArrayList中只有1个元素。但是,如果有多个元素,那么我需要对ArrayList 中的每个元素执行操作,所以如果其中有3个元素,我最终会得到3个索引,我会用它们从正常的array中提取信息,最终得到3个String

我为以上场景编写了以下代码。我知道它不会将每个元素的答案存储在自己的String中,而且我不知道该怎么做;我也需要帮助。但无论如何,这段代码似乎也不起作用:

public void testMethod(){

MyClass test_one = arrayList.get(8);
String[] tmpStringArray = test_one.correct;
ArrayList<Integer> nnaCorrectAnswers = test_one.correctAnswers;

for (int i=0; i<nnaCorrectAnswers.size();i++){

    tmp2= nnaCorrectAnswers.get(i);

    for (int z=0; z<(tmp2 -1); z++){
    someString=tmpStringArray[z];
    }
}
}

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你有一个List<Integer> indices包含索引。例如,[2, 4, 6]

你有一个包含字符串的数组strings。例如:["a", "b", "c", "d", "e", "f", "g", "h"]

并且您想要创建一个列表,其中包含索引存储在列表中的数组的所有元素。因此,例如:["c", "e", "g"](因为&#34; c&#34;在索引2处,&#34; e&#34;在索引4处,&#34; g&#34;在索引处6)。

是吗?如果是这样,您只需要:

List<String> result = new ArrayList<>();
for (int index : indices) {
    result.add(strings[index]);
}

答案 1 :(得分:0)

不要总是得到索引0,而是执行for-each循环:

for(int number : arrayList){
  someString = normalArray[number-1];
  //...
}