บทนำ
ในบทความนี้ เราจะเรียนรู้วิธีการเรียงลำดับ ArrayList จากน้อยไปมาก (Ascending order) ลิสต์ (List) เป็นคอลเลกชันที่มีลำดับ ช่วยให้จัดเก็บและเข้าถึงสมาชิกแบบลำดับได้ มีเมธอดแบบดัชนีสำหรับแทรก อัปเดต ลบ และค้นหา สามารถมีสมาชิกซ้ำได้
ตัวอย่างการทำงาน
อินพุทตัวอย่าง:
Input list: [java, coding, is, fun]
เอาต์พุทที่คาดหวัง:
The sorted list is: [coding, fun, is, java]
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศ ArrayList ชื่อ input_list ขั้นตอนที่ 3 - กำหนดค่า ขั้นตอนที่ 4 - ใช้ฟังก์ชัน Collections.sort() เพื่อเรียงลำดับลิสต์ ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนในฟังก์ชัน main โดยตรง
import java.util.*;
public class Demo {
public static void main(String args[]) {
ArrayList input_list = new ArrayList();
input_list.add("java");
input_list.add("coding");
input_list.add("is");
input_list.add("fun");
System.out.println("The list is defined as: " + input_list);
Collections.sort(input_list);
System.out.println("The sorted list is: " + input_list);
}
}
เอาต์พุท
The list is defined as: [java, coding, is, fun] The sorted list is: [coding, fun, is, java]
ตัวอย่างที่ 2: ใช้เมธอดแยก (Object-Oriented Style)
import java.util.*;
public class Demo {
static void sort(ArrayList input_list) {
Collections.sort(input_list);
System.out.println("The sorted list is: " + input_list);
}
public static void main(String args[]) {
ArrayList input_list = new ArrayList();
input_list.add("java");
input_list.add("coding");
input_list.add("is");
input_list.add("fun");
System.out.println("The list is defined as: " + input_list);
sort(input_list);
}
}
เอาต์พุท
The list is defined as: [java, coding, is, fun] The sorted list is: [coding, fun, is, java]
ข้อมูลเพิ่มเติม:
Collections.sort()เรียงตาม natural ordering (สำหรับ String คือลำดับเลขอักษร/พจนานุกรม)- สำหรับการเรียงจากมากไปน้อย (Descending):
Collections.sort(list, Collections.reverseOrder()) - สำหรับ Custom Object: ให้ implements
Comparableหรือใช้Comparator - Java 8+:
list.sort(Comparator.naturalOrder())หรือlist.stream().sorted().collect(...)