บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการดึงสมาชิกตัวแรก (First) และตัวสุดท้าย (Last) จาก ArrayList ลิสต์ (List) เป็นคอลเลกชันที่มีลำดับ ช่วยให้จัดเก็บและเข้าถึงสมาชิกแบบลำดับได้ มีเมธอดแบบดัชนีสำหรับแทรก อัปเดต ลบ และค้นหา สามารถมีสมาชิกซ้ำได้
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
Input list: [40, 60, 150, 300]
เอาต์พุทที่คาดหวัง:
The first element is : 40 The last element is : 300
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศ ArrayList ชื่อ input_list ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - ตรวจสอบว่าลิสต์ไม่ว่าง ใช้ .get(0) และ .get(list.size() - 1) ดึงสมาชิกตัวแรกและตัวสุดท้าย ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
import java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
ArrayList input_list = new ArrayList(5);
input_list.add(40);
input_list.add(60);
input_list.add(150);
input_list.add(300);
System.out.print("The list is defined as: " + input_list);
int first_element = input_list.get(0);
int last_element = input_list.get(input_list.size() - 1);
System.out.println("\nThe first element is : " + first_element);
System.out.println("The last element is : " + last_element);
}
}
เอาต์พุท
The list is defined as: [40, 60, 150, 300] The first element is : 40 The last element is : 300
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
import java.util.ArrayList;
public class Demo {
static void first_last(ArrayList input_list) {
int first_element = input_list.get(0);
int last_element = input_list.get(input_list.size() - 1);
System.out.println("\nThe first element is : " + first_element);
System.out.println("The last element is : " + last_element);
}
public static void main(String[] args) {
ArrayList input_list = new ArrayList(5);
input_list.add(40);
input_list.add(60);
input_list.add(150);
input_list.add(300);
System.out.print("The list is defined as: " + input_list);
first_last(input_list);
}
}
เอาต์พุท
The list is defined as: [40, 60, 150, 300] The first element is : 40 The last element is : 300
วิธีอื่นๆ (Java 8+):
// ใช้ Stream API input_list.stream().findFirst().ifPresent(System.out::println); // ตัวแรก input_list.stream().reduce((first, last) -> last).ifPresent(System.out::println); // ตัวสุดท้าย // หรือใช้ ListIterator ListIteratorit = input_list.listIterator(); if (it.hasNext()) System.out.println("First: " + it.next()); it = input_list.listIterator(input_list.size()); if (it.hasPrevious()) System.out.println("Last: " + it.previous());
คำเตือน: ต้องตรวจสอบ !list.isEmpty() ก่อนเรียก get() ไม่งั้นจะเกิด IndexOutOfBoundsException