บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการลบสับลิสต์ (Sublist) จากลิสต์ (List) ลิสต์เป็นคอลเลกชันที่มีลำดับ ช่วยให้จัดเก็บและเข้าถึงสมาชิกแบบลำดับได้ มีเมธอดแบบดัชนีสำหรับแทรก อัปเดต ลบ และค้นหา สามารถมีสมาชิกซ้ำได้
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
Input list: [Java, Programming, Is, Fun]
เอาต์พุทที่คาดหวัง:
The list after removing a sublist is: [Java, Programming]
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศ AbstractList ชื่อ input_list ขั้นตอนที่ 3 - เพิ่มค่าลงในลิสต์ ขั้นตอนที่ 4 - ใช้ subList().clear() เพื่อลบสับลิสต์จากค่าดัชนีที่ระบุ ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
import java.util.*;
public class Demo {
public static void main(String args[]) {
AbstractList input_list = new LinkedList();
input_list.add("Java");
input_list.add("Programming");
input_list.add("Is");
input_list.add("Fun");
System.out.println("The list is defined as: " + input_list);
input_list.subList(2, 4).clear();
System.out.println("The list after removing a sublist is: " + input_list);
}
}
เอาต์พุท
The list is defined as: [Java, Programming, Is, Fun] The list after removing a sublist is: [Java, Programming]
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
import java.util.*;
public class Demo {
static void remove_sublist(AbstractList input_list) {
input_list.subList(2, 4).clear();
System.out.println("The list after removing a sublist is: " + input_list);
}
public static void main(String args[]) {
AbstractList input_list = new LinkedList();
input_list.add("Java");
input_list.add("Programming");
input_list.add("Is");
input_list.add("Fun");
System.out.println("The list is defined as: " + input_list);
remove_sublist(input_list);
}
}
เอาต์พุท
The list is defined as: [Java, Programming, Is, Fun] The list after removing a sublist is: [Java, Programming]
รายละเอียด subList(int fromIndex, int toIndex):
- คืนค่า view ของส่วนหนึ่งของลิสต์ (จาก fromIndex ถึง toIndex-1)
- การเปลี่ยนแปลง view จะส่งผลต่อลิสต์ต้นฉบับด้วย
subList(2, 4)หมายถึง ดัชนี 2 และ 3 (ไม่รวม 4)- ใช้
clear()บน view จะลบช่วงนั้นออกจากลิสต์ต้นฉบับ
วิธีอื่น: list.removeAll(list.subList(2, 4)) หรือวนลูปลบแบบ manual