Java 中的 ArrayList.clear() 和 ArrayList.removeAll() 有什么区别?

javaobject oriented programmingprogramming

Java 中的 ArrayList 类是 List 接口的 Resizable 数组实现。它允许使用空值。

此类的 clear() 方法可从当前 List 对象中删除所有元素。

示例

import java.util.ArrayList;
public class ClearExample {
   public static void main(String[] args){
      //实例化 ArrayList 对象
      ArrayList<String> list = new ArrayList<String>();
      list.add("JavaFX");
      list.add("Java");
      list.add("WebGL");
      list.add("OpenCV");
      list.add("Impala");
      System.out.println("数组列表的内容:\n"+list);
      //删除子列表
      list.clear();
      System.out.println("调用 clear() 方法后 ArrayList 对象的内容:"+list);
   }
}

输出

Array List 的内容:
[JavaFX、Java、WebGL、OpenCV、Impala]
调用 clear() 方法后 ArrayList 对象的内容:[]

而 ArrayList 类的 removeAll() 方法接受另一个集合对象作为参数,并从当前 ArrayList 中删除其所有内容。

示例

import java.util.ArrayList;
public class ClearExample {
   public static void main(String[] args){
      //实例化一个 ArrayList 对象
      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("数组 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("数组 List1 的内容:\n"+list2);
      //删除元素
      list1.removeAll(list2);
      System.out.println("删除后数组列表的内容:\n"+list1);
   }
}

输出

数组列表1的内容:
[JavaFX、Java、WebGL、OpenCV、OpenNLP、JOGL、Hadoop、HBase、Flume、Mahout、Impala]
数组列表1的内容:
[JOGL、Hadoop、HBase、Flume、Mahout、Impala]
删除后的数组列表的内容:
[JavaFX、Java、WebGL、OpenCV、OpenNLP]

相关文章