首页 > 解决方案 > 创建了一个类来打印一组通用对象,但我没有得到任何输出?

问题描述

基本上它是一个数组列表实现,我需要计算向它添加元素以及其他功能需要多长时间。我编译了它,没有输出,我找不到问题。我在类中实例化了一个对象数组,然后定义了一个方法 add(E e) 以使用基本赋值添加元素 E。然后 ListDriver 应该使用 add() 方法填充数组并打印它,但同样没有输出。

public class MyArrayList<E> {

public Object array[];
public int size = 0;
private static final int INITIAL_CAPACITY = 100;

public MyArrayList() {
    array = new Object[INITIAL_CAPACITY];
    this.size = 0;
}

private boolean arrayFull() {
    if (size == array.length)
        return true;
    else
        return false;
}

private boolean remove(Object o) {
    for (int i = 0; i < size; i++) {
        if (array[i].getClass() == o.getClass()) {
        remove(i);
        return true;
        }
    }
    return false;
}

private void resize(int i) {
    if (i == 0) {
        Object[] temp = new Object[array.length*2];
        for (int j = 0; j < size; j++) {
            temp[j] = array[j];
        }
        this.array = temp;
    }
    if (i == 1) {
        Object[] temp = new Object[array.length/2];
        for (int j = 0; j < size; j++) {
            temp[j] = array[j];
        }
        this.array = temp;           
    }
}

public void add(E e) {
    if (!arrayFull()) {
    array[size] = e;
    size++;
    }
    else if (arrayFull()) {
        resize(0);
        add(e);
    }
}

public int size() {
    return size;
}

private void clear() {
    array = null;
}

private Object remove(int index) {
    if (halfFull()) { 
        resize(1);
    }
    Object temp = array[index];
    for (int i = index; i < size; i++) {
        array[i] = array[i+1];
    }
    size--;
    return temp;
}

private boolean halfFull() {
    if (size < (array.length/4)) {
        return true;
    }
    else return false;
}

public void add(int index, E element) {
    
    if (!arrayFull()) {
        for (int i = size-1 ; i >= index ; i--) {
            array[i] = array[i+1];
        }
        array[index] = element;
        size++;
    }
    else {
        resize(0);
        add(index, element);
    }
}

public String toString() {
    String list = new String();
    for (int i = 0; i < size; i++) {
        list += " " + array[i];
    }
    return list;
}

public static void main(String[] args) {
    MyArrayList temp = new MyArrayList();
    System.out.println(temp.size);
}


}

还有司机

public class ListTester {



public static void main(String[] args) {
    
    int n = 100;
    
    MyArrayList arrayList = new MyArrayList();
    int[] array = new int[n];
    for (int i = 0; i < array.length; i++) {
        array[i] = (int)Math.random() *2*n +1;
    }

    long startTime = System.nanoTime();
    for (int i = 0; i < arrayList.size(); i++) {
        arrayList.add(array[i]);
    }
    long endTime = System.nanoTime();
    long duration = endTime - startTime;
    
    System.out.println(arrayList);
    System.out.println(duration);
}
}
        
    

标签: javagenerics

解决方案


推荐阅读