บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการรวม (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 โดยตรง)