自定义List容器 (1)定义MyArrayList<T>类,其中T表示元素类型,该类包含 private的Object[]类型a1l,初始化长度为4。 private的int类型的total, public void add(Tt):实现添加一个元素到a11数组中,如果a11数组已满,数组扩容为原来2倍。 public T get(int index):实现返回all[index]的元素。 public object toArray():返回实际存储的元素。
时间: 2024-02-23 19:59:37 浏览: 57
好的,你的问题是关于自定义List容器的实现。那么我来解答你的问题:
首先,我们可以定义一个 MyArrayList 类,该类有一个泛型类型 T 表示元素类型。在 MyArrayList 类中我们需要定义以下属性:
- private Object[] a1l:表示存储元素的数组,初始长度为 4。
- private int total:表示当前存储的元素数量。
接下来我们需要实现以下方法:
- public void add(T t):将元素 t 添加到 a1l 数组中,如果 a1l 数组已满,数组扩容为原来的 2 倍。
- public T get(int index):返回 a1l[index] 的元素。
- public Object[] toArray():返回实际存储的元素。
具体实现代码如下:
```
public class MyArrayList<T> {
private Object[] a1l = new Object[4];
private int total = 0;
public void add(T t) {
if (total == a1l.length) {
Object[] temp = new Object[a1l.length * 2];
System.arraycopy(a1l, 0, temp, 0, a1l.length);
a1l = temp;
}
a1l[total++] = t;
}
public T get(int index) {
if (index < 0 || index >= total) {
throw new IndexOutOfBoundsException();
}
return (T) a1l[index];
}
public Object[] toArray() {
Object[] temp = new Object[total];
System.arraycopy(a1l, 0, temp, 0, total);
return temp;
}
}
```
以上就是一个简单的自定义 List 容器的实现,可以通过 add() 方法添加元素,通过 get() 方法获取指定元素,通过 toArray() 方法返回实际存储的元素。当 a1l 数组已满时,会自动扩容为原来的 2 倍。
阅读全文