所以我第一次尝试在ArrayList上进行这项任务,并且遇到了一条错误信息,我不确定如何处理。 所以首先我构建一个名为ArrayList的类:其中一些代码如下: -
public class ArrayList
{
ArrayList list = new ArrayList();
public void add(Object a, int index)
{
list.add(null,0);
list.add(a,index);
}
public void insert(Object b, int index)
{
list.add(b,index);
}
public Object remove(int index)
{
Object c = get(index);
list.remove(index);
return c;
}
public Object get(int index)
{
return (list.get(index));
}
public int size()
{
int length = list.size();
return length;
}
}
有更多的代码,但我认为这个问题足够了。 所以在那之后我构建了另一个包含我的测试主驱动程序的类,它是: -
public class DataStructuresDriver
{
public static void main(String[] args)
{
//stackTests();
//queueTests();
arrayListTests();
}
private static void arrayListTests()
{
//todo: make more tests here
ArrayList a = new ArrayList();
a.add('A',2);
a.insert('B', 0);
a.insert('a',0);
a.insert('t',1);
System.out.println(a.toString());
while(a.isEmpty() == false)
{
System.out.println(a.remove(0));
}
}
当我编译这两个类时,我没有错误,但是当我运行我的主代码时,它给了我java.lang.StackOverflowError null,所以不确定如何继续?
答案 0 :(得分:1)
您已定义自定义ArrayList
类的每个实例本身都包含ArrayList
类的实例。在您创建一个实例的那一刻,线程将继续创建无限多个实例,直到您看到StackOverflowError
为止。