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

โปรแกรม Java รวมสองลิสต์เข้าด้วยกัน


บทนำ

ในบทความนี้ เราจะเรียนรู้วิธีการรวม (Join) สองลิสต์ (List) เข้าด้วยกัน คลาส ArrayList ขยายจาก AbstractList และ implements interface List รองรับ dynamic array ที่สามารถขยายได้ตามต้องการ

ArrayList สร้างขึ้นพร้อมขนาดเริ่มต้น เมื่อขนาดเกินกว่าที่กำหนด คอลเลกชันจะขยายตัวอัตโนมัติ เมื่อลบออบเจ็กต์ออก อาร์เรย์อาจหดเล็กลงได้

ตัวอย่างการทำงาน

อินพุทตัวอย่าง:

First list is defined as: [Java, Python]
Second list: [Mysql, Redshift]

เอาต์พุทที่คาดหวัง:

The list after joining two strings: [Java, Python, Mysql, Redshift]

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศลิสต์สองตัว: input_list_1 และ input_list_2
ขั้นตอนที่ 3 - กำหนดค่า
ขั้นตอนที่ 4 - ใช้ฟังก์ชัน join_lists() ส่งทั้งสองลิสต์เป็นพารามิเตอร์ เพื่อรวมลิสต์
ขั้นตอนที่ 5 - แสดงผลลัพธ์
ขั้นตอนที่ 6 - จบการทำงาน

ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง (โค้ดต้นฉบับมีบางส่วนไม่ตรงกับหัวข้อ)

หมายเหตุ: โค้ดตัวอย่างที่ 1 ในต้นฉบับแสดงการเข้าถึงสมาชิก LinkedList ไม่ใช่การรวมลิสต์ นี่คือโค้ดที่แก้ไขให้ตรงกับหัวข้อ:

import java.util.ArrayList;
import java.util.List;

public class Demo {
    public static void main(String[] args) {
        List input_list_1 = new ArrayList();
        input_list_1.add("Java");
        input_list_1.add("Python");
        System.out.println("The first list is defined as: " + input_list_1);
        
        List input_list_2 = new ArrayList();
        input_list_2.add("Mysql");
        input_list_2.add("Redshift");
        System.out.println("The second list is defined as: " + input_list_2);
        
        List result_list = new ArrayList();
        result_list.addAll(input_list_1);
        result_list.addAll(input_list_2);
        System.out.println("\nThe list after joining two strings: " + result_list);
    }
}

เอาต์พุท

The first list is defined as: [Java, Python]
The second list is defined as: [Mysql, Redshift]
The list after joining two strings: [Java, Python, Mysql, Redshift]

ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)

import java.util.ArrayList;
import java.util.List;

public class Demo {
    static void join_lists(List input_list_1, List input_list_2) {
        List result_list = new ArrayList();
        result_list.addAll(input_list_1);
        result_list.addAll(input_list_2);
        System.out.println("\nThe list after joining two strings: " + result_list);
    }
    
    public static void main(String[] args) {
        List input_list_1 = new ArrayList();
        input_list_1.add("Java");
        input_list_1.add("Python");
        System.out.println("The first list is defined as: " + input_list_1);
        
        List input_list_2 = new ArrayList();
        input_list_2.add("Mysql");
        input_list_2.add("Redshift");
        System.out.println("The second list is defined as: " + input_list_2);
        
        join_lists(input_list_1, input_list_2);
    }
}

เอาต์พุท

The first list is defined as: [Java, Python]
The second list is defined as: [Mysql, Redshift]
The list after joining two strings: [Java, Python, Mysql, Redshift]

วิธีอื่นๆ ในการรวมลิสต์:

  • ใช้ Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList()) (Java 8+)
  • ใช้ list1.addAll(list2) แบบ in-place (แก้ไข list1 โดยตรง)