ArrayList的java.lang.IndexOutOfBoundsException
这段代码有一个java.lang.IndexOutOfBoundsExceptionArrayList的java.lang.IndexOutOfBoundsException,java,exception,arraylist,indexing,Java,Exception,Arraylist,Indexing,这段代码有一个java.lang.IndexOutOfBoundsException private List<Integer> LoeschenX = new ArrayList<Integer>(); private List<Integer> LoeschenY = new ArrayList<Integer>(); for (int i : LoeschenY) LoeschenX.add(LoeschenY.get(i)); priv
private List<Integer> LoeschenX = new ArrayList<Integer>();
private List<Integer> LoeschenY = new ArrayList<Integer>();
for (int i : LoeschenY) LoeschenX.add(LoeschenY.get(i));
private List LoeschenX=new ArrayList();
private List LoeschenY=new ArrayList();
对于(inti:LoeschenY)LoeschenX.add(LoeschenY.get(i));
当您这样做时
for (int i : LoeschenY)
您在LoeschenY
的元素上循环,而不是在索引上循环。您可能希望迭代索引,以便使用get(i)
:
由于
i
获取LoeschenY
元素的值,您将把这些值添加到LoeschenX
您似乎在迭代Y数组中的元素,但是get
方法实际上使用元素作为索引
试一试
或
for(int i=0;i
IndexOutOfBoundsException-如果索引超出范围(index<0 | | index>=size()),我认为您误解了for each循环的工作原理i
不是索引,而是迭代过程中每个整数对象保持的int值。也就是说,如果你的列表包含4,-5,12,我将等于4(迭代1),-5(迭代2)和12(迭代3)。
for (int i = 0; i < LoeschenY.size(); i++)
LoeschenX.add(LoeschenY.get(i));
for (int i : LoeschenY)
LoeschenX.add(i);
for(int i : LoeschenY)
LoeschenX.add(i);
for(int i = 0; i < LoeschenY.size(); i++)
LoeschenX.add(LoeschenY.get(i));