Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ArrayList存储多行信息?_Java_Arrays_For Loop_Arraylist - Fatal编程技术网

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

Java 如何使用ArrayList存储多行信息?,java,arrays,for-loop,arraylist,Java,Arrays,For Loop,Arraylist,我创建了以下代码: int storagevar= arrayList.get(0); for (int j=0; z<(storagevar-1); j++){ someString= normalArray[j]; } 不要总是获取索引0,而是为每个循环执行以下操作: for(int number : arrayList){ someString = normalArray[number-1]; //... } 如果我理解正确,您有一个包含索引的列表索引。例如,[2,

我创建了以下代码:

int storagevar= arrayList.get(0);

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

不要总是获取索引0,而是为每个循环执行以下操作:

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

如果我理解正确,您有一个包含索引的
列表索引。例如,
[2,4,6]

您有一个包含字符串的数组
strings
。例如:
[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”]

您需要创建一个列表,其中包含数组中索引存储在列表中的所有元素。例如:
[“c”,“e”,“g”]
(因为“c”位于索引2,“e”位于索引4,“g”位于索引6)

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

List<String> result = new ArrayList<>();
for (int index : indices) {
    result.add(strings[index]);
}
List result=new ArrayList();
for(int索引:索引){
添加(字符串[索引]);
}

创建一个
ArrayList
并将结果存储在那里。@HovercraftFullOfEels是的,我在发布问题后这样做了,但是循环不起作用,它在调试时打印得很奇怪为什么要使用循环来初始化始终相同的
someString
变量?循环可以替换为
someString=normalArray[storagevar-2]
@jbnize如果我需要将每个字符串存储在它自己的变量中,您建议的方式不起作用吗?因为它会覆盖之前someString中的内容。这正是您要做的:在每次迭代时覆盖存储在someString中的值。因此我的评论是:只有最后一次迭代才有用。前面所有的都是无用的。您对我需要的解释是正确的,我用您的值替换了我的值,但在运行时,我得到IndexOutofBounds,这意味着其中一个索引为负,或大于或等于数组的长度。要么永远不会发生这种情况,而您在其他地方也有bug,要么可能发生这种情况,您需要在访问数组元素之前检查索引是否有效。我有一个大小为3[1,2,5]的arrayList和一个由5个元素组成的字符串数组,该数组抛出IndexOutofBounds如果您的数组有5个元素,则其索引为0、1、2、3和4。所以5不是一个有效的索引。因此出现了异常。Nizel如何初始化索引以1开始?我不太使用数组循环
List<String> result = new ArrayList<>();
for (int index : indices) {
    result.add(strings[index]);
}