我是Java新手,请帮助我。
我的节目是
import java.util.*;
import java.lang.*;
class Test
{
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add("a");
al.add("b");
for(int i=1;i<=10;i++)
{
al.add(i);
}
al.remove("a");
al.set(1,"c");
for(int j=3;j<=al.size();j++)
{
al.set(j,"z");
}
System.out.println(al);
}
};
在上面有任何错误........ plz帮帮我
答案 0 :(得分:4)
a)你需要让类公开运行它:
public class Test
{
b)最后一个分号是语法错误不是,它只是不必要的噪音。
c)这失败了IndexOutOfBoundsException
:
for(int j = 3; j <= al.size(); j++){
al.set(j, "z");
}
需要:
for(int j = 3; j < al.size(); j++){
al.set(j, "z");
}
说明:列表索引从零开始,因此具有n个元素的List中的最高位置是n-1
Collections.fill(al.subList(3, al.size()), "z");
参考:
答案 1 :(得分:1)
此代码将抛出一个IndexOutOfBounds异常,因为该行:
for (int j = 3; j <= al.size(); j++) {
要修复它,您需要将其更改为:
for (int j = 3; j < al.size(); j++) {
这是因为&lt; =表示你的for循环遍历列表的末尾。
答案 2 :(得分:0)
List~和Arrayindices从0开始,而不是1.所以如果你有3个元素的列表,它们会从索引:0,1,2开始。所以你通常迭代(i = 0; i&lt; list。 size(); ++ i)。小于,不小于/等于。
for (int j=3; j < al.size (); j++)
答案 3 :(得分:0)
1.最后一行的分号
2.从
更改代码for(int j=3;j<=al.size();j++)
到
for(int j=3;j<al.size();j++)
始终从第0个索引到小于数组的大小访问Arraylist。
答案 4 :(得分:0)
我认为有必要将起始索引从3改为2:
for (int j=2; j < al.size (); j++)