เมธอด get(int index) ของ ArrayList คืนค่าเอลิเมนต์ที่ index ที่ระบุ ดังนั้น:
- index 0 = เอลิเมนต์แรก
- index list.size() - 1 = เอลิเมนต์สุดท้าย
ตัวอย่างพื้นฐาน
import java.util.ArrayList;
public class FirstAndLastElements {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("JavaFX");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
list.add("OpenNLP");
list.add("JOGL");
list.add("Hadoop");
list.add("HBase");
list.add("Flume");
list.add("Mahout");
list.add("Impala");
System.out.println("Contents: " + list);
System.out.println("First element: " + list.get(0));
System.out.println("Last element: " + list.get(list.size() - 1));
}
}
ผลลัพธ์
Contents: [JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
First element: JavaFX
Last element: Impala
ตัวอย่างที่ 2: หาค่า Min/Max ของ ArrayList ตัวเลข
- สร้าง ArrayList
- เพิ่มข้อมูล
- เรียงลำดับด้วย Collections.sort()
- เอลิเมนต์แรก = ค่าต่ำสุด, เอลิเมนต์สุดท้าย = ค่าสูงสุด
import java.util.ArrayList;
import java.util.Collections;
public class MinAndMax {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1001);
list.add(2015);
list.add(4566);
list.add(90012);
list.add(100);
list.add(21);
list.add(43);
list.add(2345);
list.add(785);
list.add(6665);
list.add(6435);
Collections.sort(list);
System.out.println("Minimum value: " + list.get(0));
System.out.println("Maximum value: " + list.get(list.size() - 1));
}
}
ผลลัพธ์
Minimum value: 21
Maximum value: 90012
ข้อควรระวัง
- ตรวจสอบ
list.isEmpty() ก่อนเรียก get() เพื่อหลีกเลี่ยงIndexOutOfBoundsException - Java 8+ สามารถใช้ Stream API:
list.stream().findFirst()และlist.stream().reduce((a, b) -> b) Collections.sort()แก้ไขลิสต์ต้นฉบับ (in-place) หากต้องการเก็บลำดับเดิม ให้ copy ก่อน
สรุป
| การดึง | โค้ด |
|---|---|
| First | list.get(0) |
| Last | list.get(list.size() - 1) |
| Min (sorted) | Collections.sort(list); list.get(0) |
| Max (sorted) | Collections.sort(list); list.get(list.size() - 1) |