gpt4 book ai didi

java - 为什么我会收到此 ArrayList 的 NullPointerException?

转载 作者:搜寻专家 更新时间:2023-11-01 01:15:36 26 4
gpt4 key购买 nike

<分区>

每当我向这个 ArrayList 添加一个对象时,我的调整大小方法都会给我一个 NullPointerException。列表初始化为大小 1,第一个元素添加到数组中的位置 0。

这是我的 arrayList AKA DynamicArray

//Implementation of a dynamic array
// Add remove methods


public class DynamicArray {
private Object[] data;
private int size;

public void DynamicArray(){
data = new Object[1];
size = 0;
}

public int size(){return size;}

public Object get(int index){return data[index];};

private void resizeIfFull()
{
if (size < data.length){
return;
} else {
Object[] bigger = new Object[2 * data.length];
for (int i = 0; i < data.length; i++){
bigger[i] = data[i];
data = bigger;
}
}
}

public void add(Object obj){
resizeIfFull();
data[size] = obj;
size++;
}

public void add(int index, Object obj){
resizeIfFull();
for(int i = size - 1; i >= index; i--){
data[i+1] = data[i];
}
data[index] = obj;
size++;
}

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

}

这是我的测试类。

public class AlgorTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
DynamicArray dynam = new DynamicArray();
System.out.println(dynam.size());
dynam.add("first");

}

}

这是我在测试类中的输出。

0
Exception in thread "main" java.lang.NullPointerException
at DynamicArray.resizeIfFull(DynamicArray.java:20)
at DynamicArray.add(DynamicArray.java:38)
at AlgorTest.main(AlgorTest.java:8)

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com