Java 中 ArrayList 长度相关知识详解
简介
在 Java 编程里,ArrayList
是一个极为常用的动态数组实现类,它属于 java.util
包。和普通数组不同,ArrayList
能动态地调整大小。然而,很多开发者会将其与普通数组的 length
属性混淆。本文会深入讲解 ArrayList
长度的基础概念、使用方法、常见实践以及最佳实践,助力读者更好地理解和运用 ArrayList
。
目录
- 基础概念
- 使用方法
- 常见实践
- 最佳实践
- 小结
- 参考资料
1. 基础概念
普通数组的 length
在 Java 中,普通数组有一个 length
属性,它代表数组的固定大小。这个大小在数组创建时就已确定,之后无法改变。示例如下:
int[] array = new int[5];
System.out.println(array.length); // 输出 5
ArrayList
的大小
ArrayList
是一个动态数组,它没有 length
属性。取而代之的是 size()
方法,该方法返回 ArrayList
中当前元素的数量。ArrayList
能根据需要自动调整大小,添加或删除元素时,其大小会相应改变。示例如下:
import java.util.ArrayList;
public class ArrayListSizeExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
System.out.println(list.size()); // 输出 2
}
}
2. 使用方法
获取 ArrayList
的大小
使用 size()
方法可以获取 ArrayList
中当前元素的数量。示例如下:
import java.util.ArrayList;
public class GetArrayListSize {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
int size = numbers.size();
System.out.println("ArrayList 的大小是: " + size);
}
}
遍历 ArrayList
可结合 size()
方法和 for
循环来遍历 ArrayList
中的元素。示例如下:
import java.util.ArrayList;
public class TraverseArrayList {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
for (int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
}
}
}
3. 常见实践
检查 ArrayList
是否为空
可以使用 size()
方法来检查 ArrayList
是否为空。若 size()
返回 0,则表示 ArrayList
为空。示例如下:
import java.util.ArrayList;
public class CheckEmptyArrayList {
public static void main(String[] args) {
ArrayList<Double> prices = new ArrayList<>();
if (prices.size() == 0) {
System.out.println("ArrayList 为空");
} else {
System.out.println("ArrayList 不为空");
}
}
}
根据 ArrayList
大小进行条件判断
有时候,需要根据 ArrayList
的大小来执行不同的操作。示例如下:
import java.util.ArrayList;
public class ConditionalOperation {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
if (names.size() < 3) {
System.out.println("ArrayList 中的元素少于 3 个");
} else {
System.out.println("ArrayList 中的元素不少于 3 个");
}
}
}
4. 最佳实践
避免在循环中多次调用 size()
方法
在循环中多次调用 size()
方法会增加不必要的开销。建议在循环前将 size()
方法的返回值存储在一个变量中。示例如下:
import java.util.ArrayList;
public class OptimalTraversal {
public static void main(String[] args) {
ArrayList<Integer> scores = new ArrayList<>();
scores.add(80);
scores.add(90);
scores.add(70);
int size = scores.size();
for (int i = 0; i < size; i++) {
System.out.println(scores.get(i));
}
}
}
使用增强 for
循环(for-each
循环)
当不需要访问元素的索引时,使用增强 for
循环可以使代码更简洁。示例如下:
import java.util.ArrayList;
public class ForEachLoop {
public static void main(String[] args) {
ArrayList<String> colors = new ArrayList<>();
colors.add("red");
colors.add("green");
colors.add("blue");
for (String color : colors) {
System.out.println(color);
}
}
}
小结
本文详细介绍了 Java 中 ArrayList
长度的相关知识。ArrayList
没有 length
属性,而是使用 size()
方法来获取当前元素的数量。我们讲解了 size()
方法的使用方法、常见实践以及最佳实践。在实际开发中,要正确使用 size()
方法,避免不必要的性能开销,以提高代码的效率和可读性。
参考资料
- 《Effective Java》(第三版)