การใช้งานรายการที่กำหนดไว้ในกรอบการรวบรวม Java รวมถึงเวกเตอร์, ArrayList และ LinkedList คอลเลกชันเหล่านี้ให้ดัชนีการเข้าถึงกลุ่มวัตถุ พวกเขาให้การสนับสนุนสำหรับการเพิ่มและลบองค์ประกอบ อย่างไรก็ตามพวกเขาไม่มีการสนับสนุนการเรียงลำดับองค์ประกอบในตัว
คุณสามารถเรียงลำดับองค์ประกอบรายการโดยใช้วิธีการเรียงลำดับ () ในคลาส java.util.collections คุณสามารถส่งผ่านรายการรายการไปยังวิธีการหรือผ่านรายการและตัวเปรียบเทียบ หากองค์ประกอบทั้งหมดในรายการเป็นคลาสประเภทเดียวกันและคลาสนี้ใช้อินเทอร์เฟซที่เปรียบเทียบได้คุณสามารถเรียกคอลเลกชัน SORT () หากคลาสนี้ไม่ได้ใช้ตัวเปรียบเทียบคุณยังสามารถผ่านตัวเปรียบเทียบไปยังวิธีการเรียงลำดับ () เพื่อเรียงลำดับ หากคุณไม่ต้องการเรียงลำดับโดยใช้ลำดับการจำแนกประเภทเริ่มต้นคุณสามารถผ่านตัวเปรียบเทียบไปยังวิธีการเรียงลำดับ () เพื่อเรียงลำดับ
1. วัตถุที่เปรียบเทียบได้ใช้อินเทอร์เฟซที่เปรียบเทียบได้
นักเรียนชั้นเรียนใช้ ID ID ส่วนตัว (INT ID ส่วนตัว; {this.id = id;} public int getage () {return age; {this.name = name;} public static void main (String args []) {list <student> list = arraylist ใหม่ <student> (); . เพิ่ม (นักเรียนใหม่ (i)); (ONSPLEATION ของนักเรียน) {นักเรียน s = (นักเรียน) o;
2. ใช้คอลเลกชัน SORT (Object O, Comparator C)
คลาสสาธารณะ jiamenucomparator ใช้ตัวเปรียบเทียบ {public int compare (Object O1, Object O2) {ถ้า (null! = o1 && null! = O2) {jiamenu menu1 = (jiamenu) o1; ) <menu2.getId ()) {return 1;
3. เรียงลำดับหลายแอตทริบิวต์ในรายการรายการ (โดยใช้ Commons-Beanutils)
ห้องสมุดคลาส Commons-Beanutils มีคลาส Beancomparator ที่สามารถใช้ในการเรียงลำดับ Javabeans แต่คลาสนี้สามารถจัดเรียงแอตทริบิวต์ได้ครั้งละหนึ่งรายการเท่านั้น นี่คือตัวอย่างของการใช้ beancomparator เพื่อจัดเรียงคุณสมบัติหลายอย่างของ Javabeans ซึ่งง่ายมาก:
นำเข้า org.apache.commons.beanutils.beancomparator; นำเข้า java.util.collections; นำเข้า java.util.comparator; นำเข้า java.util.list; "ไม่ได้ตรวจสอบ"}) คลาสสาธารณะ listorter { /*** มีการเรียงลำดับคุณลักษณะหลายรายการของรายการรายการ ตัวอย่างเช่น listsorter.sort (รายการ, "ชื่อ", "อายุ"), เรียงลำดับแรกโดยแอตทริบิวต์ชื่อ * และองค์ประกอบที่มีชื่อเดียวกันเรียงลำดับตามแอตทริบิวต์อายุ * * รายการ @param มีรายการองค์ประกอบที่จะเรียงลำดับ * คุณสมบัติคุณสมบัติคุณสมบัติที่จะจัดเรียง ค่าก่อนหน้านี้มีลำดับความสำคัญสูง */ สาธารณะคงที่ <v> การเรียงลำดับเป็นโมฆะ (รายการ <v> รายการ, สตริงสุดท้าย ... คุณสมบัติ) {collections.sort (รายการ, ตัวเปรียบเทียบใหม่ <v> () {public int Compare (V O1, v O2) {ถ้าถ้า (o1 == null && o2 == null) return 0; คุณสมบัติ);