ตัวอย่างที่ 1
การคัดลอกรหัสมีดังนี้:
แพ็คเกจ com.yonyou.test;
นำเข้า java.util.arraylist;
นำเข้า Java.util.Collections;
นำเข้า Java.util.Comparator;
นำเข้า java.util.list;
การทดสอบระดับสาธารณะ {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
นักเรียน zlj = นักเรียนใหม่ ("Ding Xiaoyu", 21);
นักเรียน dxy = นักเรียนใหม่ ("Zhao Si", 22);
นักเรียน CJC = นักเรียนใหม่ ("จางซาน", 11);
นักเรียน LGC = นักเรียนใหม่ ("Liu Wu", 19);
รายการ <student> studentList = new ArrayList <Tudent> ();
studentlist.add (zlj);
studentlist.add (DXY);
studentlist.add (CJC);
studentlist.add (LGC);
System.out.println ("เรียงตามปี:");
collections.sort (studentlist, sortByage ใหม่ ());
สำหรับ (นักเรียนนักเรียน: นักศึกษา) {
System.out.println (student.getName () + " /" + student.getage ());
-
System.out.println ("===========");
System.out.println ("เรียงตามชื่อ");
collections.sort (studentlist, sortbyName ใหม่ ());
สำหรับ (นักเรียนนักเรียน: นักศึกษา) {
System.out.println (student.getName () + " /" + student.getage ());
-
-
-
คลาส SortByage ใช้ตัวเปรียบเทียบ {
INT Public Compare (Object O1, Object O2) {
นักเรียน S1 = (นักเรียน) O1;
นักเรียน S2 = (นักเรียน) O2;
if (s1.getage ()> s2.getage ())
กลับ 1;
อื่นถ้า (s1.getage () == s2.getage ()) {
กลับ 0;
-
กลับ -1;
-
-
คลาส SortByName ใช้เครื่องเปรียบเทียบ {
INT Public Compare (Object O1, Object O2) {
นักเรียน S1 = (นักเรียน) O1;
นักเรียน S2 = (นักเรียน) O2;
if (s1.getName (). compereto (s2.getName ()) <0)
กลับ -1;
อื่นถ้า (s1.getName (). compereto (s2.getName ())> 0) {
กลับ 1;
-
กลับ 0;
-
-
นักเรียนชั้นเรียน {
อายุ int ส่วนตัว;
ชื่อสตริงส่วนตัว;
สาธารณะ int getage () {
อายุกลับ;
-
การตั้งค่าโมฆะสาธารณะ (อายุ int) {
this.age = อายุ;
-
สตริงสาธารณะ getName () {
ชื่อคืน;
-
โมฆะสาธารณะ setName (ชื่อสตริง) {
this.name = ชื่อ;
-
นักเรียนสาธารณะ (ชื่อสตริงอายุ int) {
this.age = อายุ;
this.name = ชื่อ;
-
-
ตัวอย่างที่ 2
ฉันมักจะพบปัญหาเกี่ยวกับการเรียงลำดับอาร์เรย์
ในความเป็นจริงสถานการณ์นี้มักจะพบ
ซอร์สโค้ดได้รับด้านล่าง:
1: person.java file:
การคัดลอกรหัสมีดังนี้:
บุคคลชั้นเรียนสาธารณะ {
ชื่อสตริง;
อายุ int;
บุคคลสาธารณะ (ชื่อสตริงอายุ int) {
this.name = ชื่อ;
this.age = อายุ;
-
สาธารณะ int getage () {
อายุกลับ;
-
การตั้งค่าโมฆะสาธารณะ (อายุ int) {
this.age = อายุ;
-
สตริงสาธารณะ getName () {
ชื่อคืน;
-
โมฆะสาธารณะ setName (ชื่อสตริง) {
this.name = ชื่อ;
-
-
2: MyComparator.java
การคัดลอกรหัสมีดังนี้:
// ใช้อินเทอร์เฟซเปรียบเทียบนั่นคือกำหนดกฎการเรียงลำดับคุณสามารถกำหนดกฎได้เกือบทุกอย่าง
แพ็คเกจ com.infoearth;
นำเข้า Java.util.*;
คลาสสาธารณะ MyComparator ใช้เครื่องเปรียบเทียบ {
INT Public Compare (Object O1, Object O2) {
บุคคล P1 = (บุคคล) O1;
บุคคล P2 = (บุคคล) O2;
if (p1.age <p2.age)
กลับ 1;
อื่น
กลับ 0;
-
-
3: listsort.java
การคัดลอกรหัสมีดังนี้:
แพ็คเกจ com.infoearth;
นำเข้า java.util.arraylist;
นำเข้า Java.util.Collections;
นำเข้า Java.util.Comparator;
LISTSORT ชั้นเรียนสาธารณะ {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
arraylist list = new ArrayList ();
list.add (บุคคลใหม่ ("LCL", 28));
list.add (บุคคลใหม่ ("fx", 23));
list.add (บุคคลใหม่ ("wqx", 29));
compactor comp = new myComparator ();
collections.sort (รายการ, comp);
สำหรับ (int i = 0; i <list.size (); i ++) {
person p = (บุคคล) list.get (i);
System.out.println (P.GetName ());
-
-
-
แน่นอนถ้ารายการของคุณถูกห่อหุ้มด้วยประเภทพื้นฐานหรือสตริงเพียงแค่ collections.sort (รายการ);