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]);
}