成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Java實現(xiàn)對象按照其屬性排序的兩種方法示例

瀏覽:9日期:2022-09-01 10:46:22

本文實例講述了Java實現(xiàn)對象按照其屬性排序的兩種方法。分享給大家供大家參考,具體如下:

有時候需要對對象列表或數(shù)組進(jìn)行排序,下面提供兩種簡單方式:

方法一:將要排序的對象類實現(xiàn)Comparable<>接口。

首先,創(chuàng)建學(xué)生類,我們將根據(jù)學(xué)生成績對學(xué)生進(jìn)行排序:

/*** 學(xué)生類*/class Student implements Comparable<Student>{ String name; int age; int score; public Student(String name, int age,int score) { this.name = name; this.age = age; this.score = score; } @Override public int compareTo(Studento) { // TODO Auto-generated method stub return this.age - o.age; }}

public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<Student> students = new ArrayList<>(); students.add(new Student('大銘', 19, 89)); students.add(new Student('來福', 26, 90)); students.add(new Student('倉頡', 23, 70)); students.add(new Student('王磊', 18, 80)); System.out.println('排序前:'); for (Student student : students) { System.out.println('姓名:'+student.name+' 年齡:'+student.age+' 成績:'+student.score); } // 排序 Collections.sort(students); System.out.println('排序后:'); for (Student student : students) { System.out.println('姓名:'+student.name+' 年齡:'+student.age+' 成績:'+student.score); } }}

同理,也可以根據(jù)對象的其他屬性進(jìn)行排序。

方法二:使用Comparator匿名內(nèi)部類實現(xiàn)。

還是使用同一個例子,按成績將學(xué)生排序:

/*** 學(xué)生類*/class Student { String name; int age; int score; public Student(String name, int age,int score) { this.name = name; this.age = age; this.score = score; }}

public class Test { public static void main(String[] args) { // TODO Auto-generated method stub ArrayList<Student> students = new ArrayList<>(); students.add(new Student('大銘', 19, 89)); students.add(new Student('來福', 26, 90)); students.add(new Student('倉頡', 23, 70)); students.add(new Student('王磊', 18, 80)); System.out.println('排序前:'); for (Student student : students) { System.out.println('姓名:'+student.name+' 年齡:'+student.age+' 成績:'+student.score); } Collections.sort(students,new Comparator<Student>() { @Override public int compare(Student o1, Student o2) {// TODO Auto-generated method stubreturn o1.age-o2.age; } }); System.out.println('排序后:'); for (Student student : students) { System.out.println('姓名:'+student.name+' 年齡:'+student.age+' 成績:'+student.score); } }}

也可以實現(xiàn)按對象屬性將對象列表排序。

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設(shè)計有所幫助。

標(biāo)簽: Java
相關(guān)文章: