如何声明和构造泛型数组列表(arraylist类)?常用操作有哪些?如何转化为普通数组?
时间: 2023-04-18 15:03:26 浏览: 127
声明和构造泛型数组列表可以使用以下语法:
```java
ArrayList<T> list = new ArrayList<T>();
```
其中,`T`表示泛型类型参数,可以是任何类型。常用操作包括:
- `add(T element)`:向列表末尾添加元素
- `get(int index)`:获取指定位置的元素
- `set(int index, T element)`:替换指定位置的元素
- `remove(int index)`:删除指定位置的元素
- `size()`:获取列表的长度
- `clear()`:清空列表
要将泛型数组列表转化为普通数组,可以使用以下语法:
```java
T[] array = list.toArray(new T[list.size()]);
```
其中,`list.toArray()`方法返回一个`Object[]`类型的数组,需要通过强制类型转换转化为泛型类型数组。
相关问题
C# arrayList数组转成list数组
你可以使用`ArrayList`类的`ToArray`方法将`ArrayList`转换为数组,然后使用`List`类的构造函数将其转换为`List`数组。以下是一个示例代码:
```csharp
ArrayList arrayList = new ArrayList();
arrayList.Add("Apple");
arrayList.Add("Banana");
arrayList.Add("Orange");
string[] array = (string[])arrayList.ToArray(typeof(string));
List<string> list = new List<string>(array);
```
在这个示例中,我们首先将`ArrayList`对象 `arrayList` 填充了一些字符串元素。然后,我们使用 `ToArray` 方法将其转换为 `string` 类型的数组。最后,我们使用 `List` 类的构造函数将数组转换为 `List<string>` 对象。
请注意,`ArrayList` 是非泛型的集合类,而 `List<T>` 是泛型的集合类。因此,在将 `ArrayList` 转换为 `List<T>` 时,需要指定元素类型。
希望这可以帮助到你!如果还有其他问题,请随时提问。
模拟ArrayList集合自定义一个集合类MyArrayList<T>,完成添加和删除功能的泛型设计, 定义测试类完成测试。
好的,我来为您编写代码。以下是完整的代码:
```java
public class MyArrayList<T> {
// 初始容量
private static final int DEFAULT_CAPACITY = 10;
// 存储元素的数组
private T[] elements;
// 当前元素个数
private int size;
// 构造方法
public MyArrayList() {
elements = (T[]) new Object[DEFAULT_CAPACITY];
}
// 获取元素个数
public int size() {
return size;
}
// 添加元素
public void add(T element) {
// 扩容
if (size == elements.length) {
ensureCapacity(size * 2);
}
// 添加元素
elements[size++] = element;
}
// 删除元素
public void remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException("Index out of range: " + index);
}
// 移动元素
for (int i = index; i < size - 1; i++) {
elements[i] = elements[i + 1];
}
// 清空最后一个元素,让GC回收空间
elements[--size] = null;
}
// 扩容
private void ensureCapacity(int capacity) {
T[] oldElements = elements;
elements = (T[]) new Object[capacity];
for (int i = 0; i < size; i++) {
elements[i] = oldElements[i];
}
}
}
// 测试类
public class Test {
public static void main(String[] args) {
MyArrayList<String> list = new MyArrayList<>();
// 添加元素
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
System.out.println("添加元素后的列表:" + Arrays.toString(list.elements));
// 删除元素
list.remove(2);
System.out.println("删除元素后的列表:" + Arrays.toString(list.elements));
}
}
```
在这个例子中,我们定义了一个泛型类MyArrayList<T>,实现了添加和删除元素的功能。在测试类Test中,我们创建了一个MyArrayList<String>对象,并添加了五个元素,然后删除了第三个元素,最后输出删除元素后的列表。