Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง ArrayList.clear() และ ArrayList.removeAll() ใน Java

คลาส ArrayList ใน Java เป็นการนำ List interface มาใช้งานแบบปรับขนาดได้ (Resizable-array) อนุญาตให้มีค่า null

เมธอด clear() ของคลาสนี้ ลบองค์ประกอบทั้งหมดออกจากอ็อบเจกต์ List ปัจจุบัน

ตัวอย่าง clear()

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("Contents of the Array List: \n" + list);
        
        // ลบ 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: []

ในขณะที่ เมธอด removeAll() ของคลาส ArrayList รับอ็อบเจกต์คอลเลกชันอีกตัวเป็นพารามิเตอร์ และลบเนื้อหาทั้งหมดของมันออกจาก ArrayList ปัจจุบัน

ตัวอย่าง removeAll()

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("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 List2 : \n" + list2);
        
        // ลบองค์ประกอบ
        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 List2 : [JOGL, Hadoop, HBase, Flume, Mahout, Impala]
Contents of the Array List after removal: [JavaFX, Java, WebGL, OpenCV, OpenNLP]