【发布时间】:2021-03-22 11:35:07
【问题描述】:
这是代码,如果 par1 或 par2 是偶数,则添加数字并删除。 给我这个error
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);
}
【问题讨论】:
-
这意味着您正在尝试获取仅包含 6 个元素的列表的第 7 个元素。
-
s.remove(s.size());将始终抛出该异常。 Java 中的数组和列表是 0 索引的。 -
@Stultuske 是对的,但更一般地说,这意味着您正在尝试访问不存在的列表索引。例如如果列表的长度为 6,则索引 6 不存在,因为列表从索引
0开始。