Java Can';无法从列表中删除元素,因为超出边界异常
我有一个Java Can';无法从列表中删除元素,因为超出边界异常,java,list,arraylist,Java,List,Arraylist,我有一个列表nums=new ArrayList(),我这样做: for(int i=1;i<=9;i++) nums.add(i); for(int i=1;i传入一个整数,而不是int。这将确保使用List\remove(Object)而不是List\remove(int)这个问题措辞奇怪。 因此,这两种解决方案可以如下所示 按索引删除 按值删除 1) 如果要按索引删除,则必须添加一些逻辑,以确保生成的数字永远不会超过list.size() 2) 如果要按值删除,则可以遍历列
列表nums=new ArrayList()
,我这样做:
for(int i=1;i<=9;i++)
nums.add(i);
for(int i=1;i传入一个整数,而不是int
。这将确保使用List\remove(Object)
而不是List\remove(int)
这个问题措辞奇怪。
因此,这两种解决方案可以如下所示
按索引删除
按值删除
1) 如果要按索引删除,则必须添加一些逻辑,以确保生成的数字永远不会超过list.size()
2) 如果要按值删除,则可以遍历列表并删除要删除的值。现在,您必须弄清楚如何使用阵列中的额外空间。(假设您从不处理负值,您可以添加-1的“占位符”)
for(int i=0;i
不要使用int,因为这将删除索引中的任何内容,而不是匹配的对象。您需要使用Integer类型的东西,它有一个接受int的构造函数,应该是一个快速修复方法
int toRemove = 9;
nums.remove(new Integer(toRemove));
nums.remove((整数)9);我们应该修复它;
您可以向其中传递一个int,因此它假定您正在调用remove by index方法remove(int-index)。通过显式指定9作为对象,您正在使用列表的remove(object o)方法。
有关。。。或者调用remove(Integer.valueOf(genNumber))代码>调用删除(对象o)
int toRemove = 9;
nums.remove(new Integer(toRemove));