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]

更新于: 2024年10月10日

864 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告