ArrayList(初学者)

时间:2015-01-29 15:57:31

标签: java bluej

所以我第一次尝试在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,所以不确定如何继续?

1 个答案:

答案 0 :(得分:1)

您已定义自定义ArrayList类的每个实例本身都包含ArrayList类的实例。在您创建一个实例的那一刻,线程将继续创建无限多个实例,直到您看到StackOverflowError为止。