Java ArrayList,我不知道';我不知道什么是IndexOutOfBoundsException

Java ArrayList,我不知道';我不知道什么是IndexOutOfBoundsException,java,arraylist,Java,Arraylist,这是代码,如果par1或par2为偶数,则添加数字并删除。 把这个给我 arraylists; 扫描仪sc=新的扫描仪(System.in); 扫描仪sm=新扫描仪(System.in); s=新的ArrayList(); int-dorinta=sc.nextInt(); 如果(多林塔==1) {int numere=sm.nextInt(); 对于(int i=0;i,正如@QBrute所指出的,数组和列表是零索引的。这意味着第一个元素在零索引处,最后一个元素在索引处(size()-1)。在

这是代码,如果par1或par2为偶数,则添加数字并删除。 把这个给我

arraylists;
扫描仪sc=新的扫描仪(System.in);
扫描仪sm=新扫描仪(System.in);
s=新的ArrayList();
int-dorinta=sc.nextInt();
如果(多林塔==1)
{int numere=sm.nextInt();

对于(int i=0;i,正如@QBrute所指出的,数组和列表是零索引的。这意味着第一个元素在零索引处,最后一个元素在索引处(size()-1)。在删除元素之前,您还需要检查列表是否为空。

这意味着您正在尝试获取仅包含6个元素的列表的第7个元素。
s.remove(s.size());
将始终引发该异常。Java中的数组和列表是0索引的。@Stultuske是对的,但更一般地说,这意味着您试图访问列表中不存在的索引。例如,如果列表长度为6,则索引6不存在,因为列表从索引
0
开始。谢谢大家!
ArrayList<Integer> s;
Scanner sc=new Scanner(System.in);
Scanner sm=new Scanner(System.in);
s= new ArrayList<>();
int dorinta=sc.nextInt();
if(dorinta ==1)
    {int numere =sm.nextInt();
    for(int i=0;i<numere;i++)
    {
        Integer x=sc.nextInt();
        s.add(x);
    }
}
Random random = new Random();
while(s.size()!=0)
{int i=s.size();
    int par1 = random.nextInt(20);

    System.out.println(par1);

    if(par1 % 2==0)
    {
       s.remove(s.size());
    }
    int par2= random.nextInt(20);

    Integer j= random.nextInt(15);

    System.out.println(par2);
    if(par2 %2 ==0)
    {
        s.add(j);
    }

    System.out.println(s);
}