Java中的List接口提供了removeAll()方法用于從列表中移除指定集合中包含的所有元素,該方法的語(yǔ)法格式如下:
boolean removeAll(Collection<?> c)
其中,Collection c表示要從列表中移除的元素集合。如果列表中存在被移除的元素,則返回true,否則返回false。該方法會(huì)將列表中與集合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]
}
}
該代碼創(chuàng)建了一個(gè)包含字符串類型元素的List,并創(chuàng)建另一個(gè)包含要移除的元素的List對(duì)象toRemove。使用removeAll()方法將列表中與toRemove中元素相同的元素全部移除,并使用println()方法輸出移除后的List對(duì)象。此時(shí)輸出結(jié)果為[C++, PHP, Ruby]。
需要注意的是,在使用removeAll()方法時(shí),兩個(gè)集合中元素的比較是基于元素的equals()方法,因此若當(dāng)前列表中的元素實(shí)現(xiàn)了自定義的equals()方法,其與待移除集合中相同元素的比較可能會(huì)出現(xiàn)意外情況。