java - 创建了一个类来打印一组通用对象,但我没有得到任何输出?
问题描述
基本上它是一个数组列表实现,我需要计算向它添加元素以及其他功能需要多长时间。我编译了它,没有输出,我找不到问题。我在类中实例化了一个对象数组,然后定义了一个方法 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);
}
}
解决方案
推荐阅读
- r - R如何绘制多个图(时间序列)
- bash - while循环回显变量直到在Bash中为空
- google-apps-script - 作为插件进行测试时出现 Google App 脚本错误
- unity3d - 在 Start() 中设置后 Unity3D 文本未更改
- python - 弹丸运动的Odeint
- google-cloud-platform - 用于配置 OAuth2 同意和凭据的 Google Cloud Platform API
- c# - 胶囊对撞机与动画不同步
- c# - C# Selenium Firefox 使用 Auth 设置 socks 代理
- python - 有没有办法手动设置特定函数的全局命名空间?
- git - 仅在更新 Git 存储库时使 Docker 缓存失效