Java 中 ArrayList.clear() 和 ArrayList.removeAll() 的区别是什么?
Java 中的 ArrayList 类是 List 接口的可调整大小数组实现。它允许 null 值。
该类的 clear() 方法会删除当前 List 对象中的所有元素。
clear() 方法与 removeAll() 方法
ArrayList 类中 clear() 和 removeAll(Collection c) 方法之间的一些重要区别。此表让我们了解这两种方法之间的比较。
关键 | clear() | removeAll() |
---|---|---|
功能 | 删除当前列表中的所有元素。 | 删除指定集合中存在的元素。 |
结果 | 清空整个列表,导致一个空列表。 | 仅删除与提供的集合中元素匹配的特定元素。 |
参数 | 不接受任何参数。 | 需要另一个集合作为参数。 |
返回类型 | 不返回值(void 方法)。 | 如果由于调用而修改了列表,则返回 true。 |
示例
import java.util.ArrayList; public class ClearExample { public static void main(String[] args){ //Instantiating an ArrayList object ArrayList<String> list = new ArrayList<String>(); list.add("JavaFX"); list.add("Java"); list.add("WebGL"); list.add("OpenCV"); list.add("Impala"); System.out.println("Contents of the Array List: \n"+list); //Removing the sub list list.clear(); System.out.println("Contents of the ArrayList object after invoking the clear() method: "+list); } }
输出
Contents of the Array List: [JavaFX, Java, WebGL, OpenCV, Impala] Contents of the ArrayList object after invoking the clear() method: []
而 ArrayList 类的 removeAll() 方法接受另一个集合对象作为参数,并从当前 ArrayList 中删除它的所有内容。
示例
import java.util.ArrayList; public class ClearExample { public static void main(String[] args){ //Instantiating an ArrayList object ArrayList<String> list1 = new ArrayList<String>(); list1.add("JavaFX"); list1.add("Java"); list1.add("WebGL"); list1.add("OpenCV"); list1.add("OpenNLP"); list1.add("JOGL"); list1.add("Hadoop"); list1.add("HBase"); list1.add("Flume"); list1.add("Mahout"); list1.add("Impala"); System.out.println("Contents of the Array List1 : \n"+list1); ArrayList<String> list2 = new ArrayList<String>(); list2.add("JOGL"); list2.add("Hadoop"); list2.add("HBase"); list2.add("Flume"); list2.add("Mahout"); list2.add("Impala"); System.out.println("Contents of the Array List1 : \n"+list2); //Removing elements list1.removeAll(list2); System.out.println("Contents of the Array List after removal: \n"+list1); } }
输出
Contents of the Array List1 : [JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala] Contents of the Array List1 : [JOGL, Hadoop, HBase, Flume, Mahout, Impala] Contents of the Array List after removal: [JavaFX, Java, WebGL, OpenCV, OpenNLP]
广告