我只是创建一个ArrayList现在需要测试

时间:2019-02-27 02:40:34

标签: java

这是我的Arraylist,我在创建新类来检查我的方法是否有效时遇到了麻烦。

任何帮助都是有用的,我需要知道如何开始我的新课程。

我创建了一个类,但我一直弄错了。 我只需要在新班级中扩展它吗?

任何帮助都将非常有用。

public class MyArray<E extends Comparable<E>> {

// No other data fields necessary.

    private E[] data;
    private int size;

    public MyArray(int size) {
        this.data = (E[]) (new Comparable[size]);
        size = 0;
    }

    public void add(E item) {
        if (size == data.length)
            resize();
        data[size] = item;
        size++;
    }

    private void resize() {
        int len = data.length * 2;
        E[] temp = (E[]) new Comparable[len];
        for (int i = 0; i < size; i++)
            temp[i] = data[i];

        data = temp;
    }

    public boolean contains(E item) {
        for (int i = 0; i < size; i++) {
            if (data[i].equals(item))
                return true;
        }

        return false; // not found
    }

    public void delete(int index) {
        if (index < 0 || index >= size)
            throw new IndexOutOfBoundsException();

        for (int i = index + 1; i < size; i++) {
            data[i - 1] = data[i];
        }
        size--;
    }

    public boolean delete(E item) {
        if (item == null)
            return false;

        for (int i = 0; i < size; i++) {
            if (data[i].equals(item)) {
                delete(i); // delete at index i
                return true;
            }
        }

        return false;// not found

    }
}

1 个答案:

答案 0 :(得分:0)

由于您的类是使用泛型(E)定义的,因此您必须提供E的实际类型。实际上,它的工作原理应与ArrayList类非常相似。

MyArray<String> a = new MyArray<String>(10);
a.add("Foo");
a.add("Bar");