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]