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

โปรแกรม Java หาสมาชิกร่วมระหว่างสอง ArrayList


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการหาสมาชิกร่วม (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) โดยตรง หากต้องการเก็บลิสต์เดิมไว้ ควรสร้างสำเนาก่อน