我创建了以下代码:
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];
}
}
}
答案 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];
//...
}