请使用数组根据 ArrayList 实现 MyArrayList<T>的以下功能: a,和集合一样,可以存放无限个数的元素. b,有一个 void add(T t) 方法,可以添加元素. c,有个 T get(int index) 方法,可以获取指定位置的元素.(获 取的元素要的顺序要和放入的顺序一致) d,有个 int size() 方法,可以获取当前存放的元素的个数
时间: 2024-03-27 19:38:35 浏览: 20
可以使用数组实现 MyArrayList 类,通过动态扩容来实现可以存放无限个数的元素。具体实现如下:
```java
public class MyArrayList<T> {
private Object[] array;
private int size;
public MyArrayList() {
this.array = new Object[10]; // 初始容量为 10
this.size = 0;
}
public void add(T t) {
// 扩容
if (size == array.length) {
Object[] newArray = new Object[array.length * 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
// 添加元素
array[size++] = t;
}
public T get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
}
return (T) array[index];
}
public int size() {
return size;
}
}
```
使用方法:
```java
MyArrayList<String> list = new MyArrayList<>();
list.add("A");
list.add("B");
list.add("C");
System.out.println(list.get(0)); // 输出 A
System.out.println(list.get(1)); // 输出 B
System.out.println(list.get(2)); // 输出 C
System.out.println(list.size()); // 输出 3
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)