1. 添加元素
方法:
-
boolean add(E e)
:将元素添加到列表末尾。 -
void add(int index, E element)
:将元素插入到指定位置。 -
boolean addAll(Collection<? extends E> c)
:将集合中的所有元素添加到列表末尾。 -
boolean addAll(int index, Collection<? extends E> c)
:将集合中的所有元素插入到指定位置。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class AddExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
// 添加单个元素
fruits.add("Apple");
fruits.add("Banana");
System.out.println("After add: " + fruits); // [Apple, Banana]
// 在指定位置插入元素
fruits.add(1, "Orange");
System.out.println("After add at index 1: " + fruits); // [Apple, Orange, Banana]
// 添加另一个集合
List<String> moreFruits = new ArrayList<>();
moreFruits.add("Mango");
moreFruits.add("Pineapple");
fruits.addAll(moreFruits);
System.out.println("After addAll: " + fruits); // [Apple, Orange, Banana, Mango, Pineapple]
// 在指定位置插入另一个集合
fruits.addAll(2, moreFruits);
System.out.println("After addAll at index 2: " + fruits); // [Apple, Orange, Mango, Pineapple, Banana, Mango, Pineapple]
}
}
2. 删除元素
方法:
-
boolean remove(Object o)
:删除指定元素。 -
E remove(int index)
:删除指定位置的元素。 -
boolean removeAll(Collection<?> c)
:删除列表中包含在指定集合中的所有元素。 -
boolean retainAll(Collection<?> c)
:仅保留列表中包含在指定集合中的元素。 -
void clear()
:清空列表。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class RemoveExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("Mango");
System.out.println("Original list: " + fruits); // [Apple, Banana, Orange, Mango]
// 删除指定元素
fruits.remove("Banana");
System.out.println("After remove 'Banana': " + fruits); // [Apple, Orange, Mango]
// 删除指定位置的元素
fruits.remove(1);
System.out.println("After remove index 1: " + fruits); // [Apple, Mango]
// 删除多个元素
List<String> toRemove = new ArrayList<>();
toRemove.add("Apple");
toRemove.add("Mango");
fruits.removeAll(toRemove);
System.out.println("After removeAll: " + fruits); // []
// 仅保留指定元素
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
List<String> toRetain = new ArrayList<>();
toRetain.add("Apple");
fruits.retainAll(toRetain);
System.out.println("After retainAll: " + fruits); // [Apple]
// 清空列表
fruits.clear();
System.out.println("After clear: " + fruits); // []
}
}
3. 获取和修改元素
方法:
-
E get(int index)
:获取指定位置的元素。 -
E set(int index, E element)
:修改指定位置的元素。 -
List<E> subList(int fromIndex, int toIndex)
:获取子列表。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class GetSetExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// 获取元素
String fruit = fruits.get(1);
System.out.println("Element at index 1: " + fruit); // Banana
// 修改元素
fruits.set(1, "Blueberry");
System.out.println("After set: " + fruits); // [Apple, Blueberry, Orange]
// 获取子列表
List<String> subList = fruits.subList(1, 3);
System.out.println("SubList: " + subList); // [Blueberry, Orange]
}
}
4. 查找元素
方法:
-
boolean contains(Object o)
:判断列表是否包含指定元素。 -
int indexOf(Object o)
:返回指定元素首次出现的索引。 -
int lastIndexOf(Object o)
:返回指定元素最后一次出现的索引。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class SearchExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("Banana");
// 判断是否包含元素
System.out.println("Contains 'Banana': " + fruits.contains("Banana")); // true
// 查找元素首次出现的索引
System.out.println("Index of 'Banana': " + fruits.indexOf("Banana")); // 1
// 查找元素最后一次出现的索引
System.out.println("Last index of 'Banana': " + fruits.lastIndexOf("Banana")); // 3
}
}
5. 遍历列表
方法:
-
增强 for 循环。
-
Iterator<E> iterator()
:返回一个迭代器。 -
ListIterator<E> listIterator()
:返回一个列表迭代器。 -
ListIterator<E> listIterator(int index)
:从指定位置开始返回一个列表迭代器。
示例:
java
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class IterationExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// 使用增强 for 循环
System.out.println("Using for-each loop:");
for (String fruit : fruits) {
System.out.println(fruit);
}
// 使用迭代器
System.out.println("Using iterator:");
var iterator = fruits.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// 使用列表迭代器(支持双向遍历)
System.out.println("Using listIterator:");
ListIterator<String> listIterator = fruits.listIterator();
while (listIterator.hasNext()) {
System.out.println(listIterator.next());
}
}
}
6. 排序
方法:
void sort(Comparator<? super E> c)
:根据比较器对列表排序。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Orange");
fruits.add("Apple");
fruits.add("Banana");
// 按自然顺序排序
fruits.sort(null);
System.out.println("After sorting: " + fruits); // [Apple, Banana, Orange]
}
}
7. 转换为数组
方法:
-
Object[] toArray()
:转换为数组。 -
<T> T[] toArray(T[] a)
:转换为指定类型的数组。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class ToArrayExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
// 转换为数组
Object[] array = fruits.toArray();
System.out.println("Array: " + Arrays.toString(array)); // [Apple, Banana, Orange]
// 转换为指定类型的数组
String[] stringArray = fruits.toArray(new String[0]);
System.out.println("String Array: " + Arrays.toString(stringArray)); // [Apple, Banana, Orange]
}
}
8. 其他方法
方法:
-
int size()
:返回列表的大小。 -
boolean isEmpty()
:判断列表是否为空。 -
boolean equals(Object o)
:判断列表是否与指定对象相等。 -
int hashCode()
:返回列表的哈希码。
示例:
java
import java.util.ArrayList;
import java.util.List;
public class OtherMethodsExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
// 获取列表大小
System.out.println("Size: " + fruits.size()); // 2
// 判断列表是否为空
System.out.println("Is empty: " + fruits.isEmpty()); // false
// 判断列表是否相等
List<String> anotherList = new ArrayList<>();
anotherList.add("Apple");
anotherList.add("Banana");
System.out.println("Equals: " + fruits.equals(anotherList)); // true
}
}