在Java中,ArrayList
是java.util
包中提供的一个常用的动态数组实现,它实现了List
接口。下面是ArrayList
的一些常见用法和示例:
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
// 创建一个空的 ArrayList
List<String> arrayList = new ArrayList<>();
// 创建带有初始容量的 ArrayList
List<Integer> intList = new ArrayList<>(10);
}
}
List<String> fruits = new ArrayList<>();
// 添加单个元素
fruits.add("Apple");
fruits.add("Banana");
// 添加一组元素
List<String> moreFruits = Arrays.asList("Orange", "Grapes", "Mango");
fruits.addAll(moreFruits);
String firstFruit = fruits.get(0);
System.out.println("First fruit: " + firstFruit);
for (String fruit : fruits) {
System.out.println(fruit);
}
// 使用迭代器遍历
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
fruits.remove("Banana");
boolean containsApple = fruits.contains("Apple");
System.out.println("Contains Apple? " + containsApple);
int size = fruits.size();
System.out.println("Size of ArrayList: " + size);
String[] fruitArray = new String[fruits.size()];
fruits.toArray(fruitArray);
fruits.clear();
boolean isEmpty = fruits.isEmpty();
System.out.println("Is ArrayList empty? " + isEmpty);
fruits.set(0, "NewApple");
List<String> subList = fruits.subList(1, 3);
List<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
// 访问第一个元素
int firstNumber = numbers.get(0);
System.out.println("First number: " + firstNumber);
// 访问最后一个元素
int lastNumber = numbers.get(numbers.size() - 1);
System.out.println("Last number: " + lastNumber);
// 设置第一个元素
numbers.set(0, 100);
// 设置最后一个元素
numbers.set(numbers.size() - 1, 300);
List<Integer> scores = new ArrayList<>(Arrays.asList(90, 85, 88, 92));
for (int i = 0; i < scores.size(); i++) {
int currentScore = scores.get(i);
// 在遍历过程中修改元素
scores.set(i, currentScore + 5);
}
// 在第二个位置插入元素
numbers.add(1, 50);
// 删除第三个位置的元素
numbers.remove(2);
int indexToCheck = 5;
if (indexToCheck >= 0 && indexToCheck < numbers.size()) {
int valueAtIndex = numbers.get(indexToCheck);
System.out.println("Value at index " + indexToCheck + ": " + valueAtIndex);
} else {
System.out.println("Invalid index");
}
Iterator<Integer> iterator = numbers.iterator();
while (iterator.hasNext()) {
int currentValue = iterator.next();
// 在迭代器中更新元素
iterator.set(currentValue * 2);
}
// 创建一个ArrayList
ArrayList<String> arrayList = new ArrayList<>();
// 预估容量为20
arrayList.ensureCapacity(20);
在这个例子中,ensureCapacity(20)
方法告诉ArrayList预估容量为20,然后我们可以添加元素到ArrayList。这可以提高性能,因为它避免了在每次添加元素时都进行数组的重新分配。不过,预估容量的方法并不会实际地更改列表的大小,它只是预先分配内存以便后续的添加操作,以减少动态扩展的开销。
这些是ArrayList
的一些基本用法。需要注意的是,ArrayList
是基于动态数组实现的,它会自动调整大小。