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

วิธีดึงเอลิเมนต์แรกและสุดท้ายจาก ArrayList ใน Java

เมธอด 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 ตัวเลข

  1. สร้าง ArrayList
  2. เพิ่มข้อมูล
  3. เรียงลำดับด้วย Collections.sort()
  4. เอลิเมนต์แรก = ค่าต่ำสุด, เอลิเมนต์สุดท้าย = ค่าสูงสุด
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 ก่อน

สรุป

การดึงโค้ด
Firstlist.get(0)
Lastlist.get(list.size() - 1)
Min (sorted)Collections.sort(list); list.get(0)
Max (sorted)Collections.sort(list); list.get(list.size() - 1)