บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการหาสมาชิกร่วม (Common elements) ระหว่างสอง ArrayList คลาส ArrayList ขยายจาก AbstractList และ implements interface List รองรับ dynamic array ที่สามารถขยายได้ตามต้องการ
ArrayList สร้างขึ้นพร้อมขนาดเริ่มต้น เมื่อขนาดเกินกว่าที่กำหนด คอลเลกชันจะขยายตัวอัตโนมัติ เมื่อลบออบเจ็กต์ออก อาร์เรย์อาจหดเล็กลงได้
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
First list: [Java, Scala, Shell, JavaScript] Second list: [Java, Python, Shell]
เอาต์พุทที่คาดหวัง:
The common elements from the two lists are: [Java, Shell]
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศ ArrayList สองตัว: input_list_1 และ input_list_2 ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - ใช้ฟังก์ชันสำเร็จรูป .retainAll() เพื่อเก็บเฉพาะสมาชิกที่มีในทั้งสองลิสต์ ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
ArrayList input_list_1 = new ArrayList();
input_list_1.add("Java");
input_list_1.add("Scala");
input_list_1.add("Shell");
input_list_1.add("JavaScript");
System.out.println("The first list is defined as: " + input_list_1);
ArrayList input_list_2 = new ArrayList();
input_list_2.add("Java");
input_list_2.add("Python");
input_list_2.add("Shell");
System.out.println("The second list is defined as: " + input_list_2);
input_list_1.retainAll(input_list_2);
System.out.println("\nThe common elements from the two lists are: " + input_list_1);
}
}
เอาต์พุท
The first list is defined as: [Java, Scala, Shell, JavaScript] The second list is defined as: [Java, Python, Shell] The common elements from the two lists are: [Java, Shell]
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
import java.util.ArrayList;
public class Demo {
static void get_common_elements(ArrayList input_list_1, ArrayList input_list_2) {
input_list_1.retainAll(input_list_2);
System.out.println("\nThe common elements from the two lists are: " + input_list_1);
}
public static void main(String[] args) {
ArrayList input_list_1 = new ArrayList();
input_list_1.add("Java");
input_list_1.add("Scala");
input_list_1.add("Shell");
input_list_1.add("JavaScript");
System.out.println("The first list is defined as: " + input_list_1);
ArrayList input_list_2 = new ArrayList();
input_list_2.add("Java");
input_list_2.add("Python");
input_list_2.add("Shell");
System.out.println("The second list is defined as: " + input_list_2);
get_common_elements(input_list_1, input_list_2);
}
}
เอาต์พุท
The first list is defined as: [Java, Scala, Shell, JavaScript] The second list is defined as: [Java, Python, Shell] The common elements from the two lists are: [Java, Shell]
หมายเหตุ: เมธอด retainAll() จะแก้ไขลิสต์ต้นฉบับ (input_list_1) โดยตรง หากต้องการเก็บลิสต์เดิมไว้ ควรสร้างสำเนาก่อน