Java中的ArrayList类存在问题
我对以下代码有问题。我得到了错误信息Java中的ArrayList类存在问题,java,algorithm,arraylist,Java,Algorithm,Arraylist,我对以下代码有问题。我得到了错误信息 Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:571) at java.util.ArrayList.set(ArrayList.java:364) at Test.main(Test.java:17) 我不明白为什么。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:571)
at java.util.ArrayList.set(ArrayList.java:364)
at Test.main(Test.java:17)
我不明白为什么。我有一个初始化的列表,然后我迭代它,然后我想用第一个列表的值填充另一个列表。我不明白为什么我会有IndexOutOfBoundsException。看来我的初始化不正确。先谢谢你
public static void main(String[] args) {
String s1 = "one";
String s2 = "one";
ArrayList list = new ArrayList();
list.set(0, s1);
list.set(1, s2);
Iterator it = list.iterator();
ArrayList listToFill = new ArrayList();
int k = 0;
while (it.hasNext()) {
String m = "m";
listToFill.set(k, m);
k++;
}
}
您使用了错误的方法添加项目 要么:
list.add(0, s1);
list.add(1, s2);
或者最好:
list.add(s1);
list.add(s2);
set尝试替换当前存在的项,但尚未替换任何项
您从未使用过
it.next();
也许这不是重点,但我不认为你想要一个无限循环。你到底为什么要写这个来将一个列表复制到另一个列表 这要简洁得多:
import java.util.ArrayList;
import java.util.List;
public class ListDemo
{
public static void main(String[] args)
{
List<String> l1 = new ArrayList<String>(args.length);
for (String arg : args)
{
l1.add(arg);
}
System.out.println("l1: " + l1);
List<String> l2 = new ArrayList<String>(l1);
System.out.println("l2: " + l2);
}
}
import java.util.ArrayList;
导入java.util.List;
公共类列表演示
{
公共静态void main(字符串[]args)
{
列表l1=新的ArrayList(参数长度);
for(字符串arg:args)
{
l1.添加(arg);
}
System.out.println(“l1:+l1”);
列表l2=新阵列列表(l1);
System.out.println(“l2:+l2”);
}
}
当您有堆栈跟踪时,使用它来找出崩溃发生的位置!这里的put()是一个在javadoc中重新验证的死赠品。更好的是:Collections.copy(l2,l1)<代码>列表l1=Arrays.asList(args);列表l2=新阵列列表(l1)非常感谢,这是我的下一个错误,我没有想到。它正在工作:)