Java中的数组和ArrayList
类都是用于存储一组元素的数据结构,但它们之间有一些重要的区别。 Java中的数组和ArrayList
类 类似于c++中的std::array
和std::vector.
数组:
- 数组是一种固定大小的数据结构,一旦创建,其大小不能改变。
- 数组可以存储基本数据类型(如int、double等)或者对象。
- 访问数组元素的时间复杂度是O(1),因为可以通过索引直接访问元素。
- 数组在内存中是连续存储的,因此可以更有效地利用缓存。
- 数组的大小是在创建时确定的,因此无法动态增加或减少大小。
public class main {
public static void main(String[] args) {
// 声明并初始化一个字符串数组
String[] fruits = {"Apple", "Banana", "Orange", "Grapes", "Mango"};
// 访问数组元素并打印输出
System.out.println("Elements of the string array:");
for (int i = 0; i < fruits.length; i++) {
System.out.println("Index " + i + ": " + fruits[i]);
}
// 修改数组元素
fruits[2] = "Pineapple";
// 打印修改后的数组元素
System.out.println("\nElements of the string array after modification:");
for (int i = 0; i < fruits.length; i++) {
System.out.println("Index " + i + ": " + fruits[i]);
}
// 计算数组元素个数
System.out.println("\nLength of the string array: " + fruits.length);
}
}
ArrayList类:
ArrayList
类是Java中的集合框架的一部分,实现了List
接口。ArrayList
是可变大小的,可以动态增加或减少其大小。ArrayList
只能存储对象,不能存储基本数据类型,但是可以使用对应的包装类(如Integer
代替int
)。- 访问
ArrayList
中的元素的时间复杂度是O(1),添加和删除元素的时间复杂度是O(n),因为需要移动元素以保持连续性。 ArrayList
使用数组作为底层数据结构,并提供了自动调整大小的功能。ArrayList
提供了丰富的API,包括添加、删除、查找、排序等操作。
import java.util.ArrayList;
public class main {
public static void main(String[] args) {
// 创建一个空的ArrayList
ArrayList<String> arrayList = new ArrayList<>();
// 添加元素到ArrayList
arrayList.add("Apple");
arrayList.add("Banana");
arrayList.add("Orange");
// 访问ArrayList中的元素
System.out.println("Element at index 0: " + arrayList.get(0));
System.out.println("Element at index 1: " + arrayList.get(1));
System.out.println("Element at index 2: " + arrayList.get(2));
// 获取ArrayList的大小
System.out.println("Size of ArrayList: " + arrayList.size());
// 遍历ArrayList并打印输出
System.out.println("Elements in ArrayList:");
for (String element : arrayList) {
System.out.println(element);
}
// 检查ArrayList是否包含某个元素
System.out.println("Contains 'Banana': " + arrayList.contains("Banana"));
// 删除ArrayList中的元素
arrayList.remove("Banana");
System.out.println("Elements in ArrayList after removing 'Banana':");
for (String element : arrayList) {
System.out.println(element);
}
// 清空ArrayList
arrayList.clear();
System.out.println("Size of ArrayList after clearing: " + arrayList.size());
}
}