ArrayList
是 Java 中的一个动态数组实现,它允许我们在列表的两端插入和删除元素,并且可以动态地调整数组的大小。ArrayList
是 java.util
包中的一个类,继承自 AbstractList
并实现了 List
接口。
ArrayList
可以根据需要自动增长和缩小,避免了手动管理数组大小的麻烦。ArrayList
底层是基于数组实现的,因此可以通过索引快速访问元素。ArrayList
提供了大量的方法来操作列表,如 add
, remove
, get
, set
等。ArrayList
是 Java 集合框架中的一种列表实现,属于 List
接口的一个具体实现类。
ArrayList
适用于需要频繁访问元素的场景,例如:
要从 ArrayList
中删除空值,可以使用以下几种方法:
removeIf
方法import java.util.ArrayList;
import java.util.Objects;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
list.add("");
list.add(null);
list.add("World");
list.removeIf(Objects::isNull); // 删除 null 值
list.removeIf(String::isEmpty); // 删除空字符串
System.out.println(list); // 输出: [Hello, World]
}
}
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
list.add("");
list.add(null);
list.add("World");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (item == null || item.isEmpty()) {
iterator.remove();
}
}
System.out.println(list); // 输出: [Hello, World]
}
}
ConcurrentModificationException
原因:在使用迭代器遍历 ArrayList
并删除元素时,如果同时使用 ArrayList
的 remove
方法,可能会导致 ConcurrentModificationException
。
解决方法:使用迭代器的 remove
方法来删除元素,而不是直接使用 ArrayList
的 remove
方法。
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Hello");
list.add("");
list.add(null);
list.add("World");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (item == null || item.isEmpty()) {
iterator.remove(); // 使用迭代器的 remove 方法
}
}
System.out.println(list); // 输出: [Hello, World]
}
}
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云