ก่อนอื่นคุณสามารถดูที่วิธีการคงที่สาธารณะคงที่ <t> การเรียงลำดับโมฆะ (รายการ <t> รายการ, comparator <? super t> c)
1. กำหนดโมเดลก่อน:
การคัดลอกรหัสมีดังนี้:
โมเดลแพ็คเกจ;
-
* user.java
-
* @author Liang WP 3 มีนาคม 2014
-
ผู้ใช้ระดับสาธารณะ
-
ชื่อผู้ใช้สตริงส่วนตัว;
ผู้ใช้งานส่วนตัว
ผู้ใช้สาธารณะ ()
-
-
ผู้ใช้สาธารณะ (ชื่อผู้ใช้สตริง, userage int)
-
this.username = ชื่อผู้ใช้;
this.userage = userage;
-
สตริงสาธารณะ getUserName ()
-
คืนชื่อผู้ใช้;
-
โมฆะสาธารณะ setUserName (ชื่อผู้ใช้สตริง)
-
this.username = ชื่อผู้ใช้;
-
public int getuserage ()
-
ส่งคืนผู้ใช้;
-
Public Void SetUserage (Int userage)
-
this.userage = userage;
-
-
2. จากนั้นกำหนดตัวเปรียบเทียบใช้อินเตอร์เฟส java.util.Comparator และเขียนกฎการเปรียบเทียบในวิธีการเปรียบเทียบ ():
การคัดลอกรหัสมีดังนี้:
แพ็คเกจ util;
นำเข้า Java.util.Comparator;
นำเข้าโมเดลผู้ใช้;
-
* comparatoruser.java
-
* @author Liang WP 3 มีนาคม 2014
-
Public Class ComparatorUser ใช้เครื่องเปรียบเทียบ <ผู้ใช้>
-
@Override
Public Int Compare (ผู้ใช้ Arg0, ผู้ใช้ Arg1)
-
// เปรียบเทียบชื่อก่อน
int flag = arg0.getUserName (). compereto (arg1.getUserName ());
// ถ้าชื่อเหมือนกันมันจะถูกนำมาเปรียบเทียบกับอายุ
ถ้า (ธง == 0)
-
return arg0.getUserage () - arg1.getUserage ();
-
ธงกลับ;
-
-
3. เมื่อเรียงลำดับใช้วิธีการเรียงลำดับ (รายการ, ตัวเปรียบเทียบ c) เมธอดใน java.util.collections:
การคัดลอกรหัสมีดังนี้:
การทดสอบแพ็คเกจ;
นำเข้า java.util.arraylist;
นำเข้า Java.util.Collections;
นำเข้า java.util.list;
นำเข้า Util.Comparatoruser;
นำเข้าโมเดลผู้ใช้;
-
* testapp.java
-
* @author Liang Weiping 3 มีนาคม 2014
-
TestApp ระดับสาธารณะ
-
โมฆะคงที่สาธารณะหลัก (สตริง [] arg0)
-
รายการ <user> userlist = arrayList ใหม่ <user> ();
// แทรกข้อมูล
userlist.add (ผู้ใช้ใหม่ ("A", 15));
userlist.add (ผู้ใช้ใหม่ ("B", 14));
userlist.add (ผู้ใช้ใหม่ ("a", 14));
// เรียงลำดับ
collections.sort (userlist, New Comparatoruser ());
// พิมพ์ผลลัพธ์
สำหรับ (ผู้ใช้ U: Userlist)
-
System.out.println (U.GetUserName () + "" + U.GetUserage ());
-
-
-
4. ผลการดำเนินงาน:
การคัดลอกรหัสมีดังนี้:
14
15
b 14