Java中的List接口提供了removeAll()方法用于从列表中移除指定集合中包含的所有元素,该方法的语法格式如下:
boolean removeAll(Collection<?> c)
其中,Collection c表示要从列表中移除的元素集合。如果列表中存在被移除的元素,则返回true,否则返回false。该方法会将列表中与集合c中元素相同的所有元素全部移除。
示例代码如下:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add("PHP");
list.add("Ruby");
List<String> toRemove = new ArrayList<>();
toRemove.add("Java");
toRemove.add("Python");
toRemove.add("JavaScript");
// 移除toRemove中包含的元素
list.removeAll(toRemove);
System.out.println(list); // 输出[C++, PHP, Ruby]
}
}
该代码创建了一个包含字符串类型元素的List,并创建另一个包含要移除的元素的List对象toRemove。使用removeAll()方法将列表中与toRemove中元素相同的元素全部移除,并使用println()方法输出移除后的List对象。此时输出结果为[C++, PHP, Ruby]。
需要注意的是,在使用removeAll()方法时,两个集合中元素的比较是基于元素的equals()方法,因此若当前列表中的元素实现了自定义的equals()方法,其与待移除集合中相同元素的比较可能会出现意外情况。