当我尝试编译此代码时,出现以下错误,该代码应该创建不使用泛型的自定义Java数组。我很确定这是不正确创建阵列,但我不确定。如何调用自定义Java数组
任何帮助将非常感谢!谢谢!
当前编译错误摘录:
51: error: unreported exception Exception; must be caught or declared to be thrown strList.add("str1");
自定义数组类:
public class MyList {
Object[] data; // list itself. null values at the end
int capacity; // maximum capacity of the list
int num; // current size of the list
static final int DEFAULT_CAPACITY = 100;
public MyList() {
this(DEFAULT_CAPACITY); // call MyList(capacity).
}
public MyList(int capacity) {
this.capacity = capacity;
data = new Object[capacity]; // null array
num = 0;
}
public void add(Object a) throws Exception {
if (num == capacity) {
throw new Exception("list capacity exceeded");
}
data[num] = a;
num++;
}
public Object get(int index) {
// find the element at given index
if (index < 0 || index >= num) {
throw new RuntimeException("index out of bounds");
}
return data[index];
}
public void deleteLastElement() {
// delete the last element from the list
// fill in the code in the class.
if (num == 0) {
throw new RuntimeException("list is empty: cannot delete");
}
num--;
data[num] = null;
}
public void deleteFirstElement() {
// delete first element from the list
for (int i = 0; i < num - 1; i++) {
data[i] = data[i + 1];
}
data[num - 1] = null;
num--; // IMPORTANT. Re-establish invariant
}
public static void main(String[] args) {
MyList strList = new MyList();
strList.add("str1");
strList.add("str2");
System.out.println("after adding elements size =" + strList);
}
}
如果答案被接受,你应该将其标记为这样...(下答案得分V符号) – ItamarG3