复制代码代码如下::
Import Java.util.ArrayList;
Import Java.util.Collections;
Java.util.comParator importieren;
importieren java.util.list;
Public Class vergleichste implementiert Vergleicher <Stuentity> {
/**
* @param args
*/
public static void main (String [] args) {
Liste <Stuentity> list = new ArrayList <Stuentity> ();
Stuentity Stud1 = new stuentity ();
Stud1.Setage (10);
Stud1.SetName ("ABC");
Stuentity Stud2 = new stuentity ();
Stud2.Setage (10);
Stud2.setName ("BDC");
Stuentity Stud3 = New Stuentity ();
Stud.Setage (5);
stud3.setName ("bdd");
Stuentity Stud4 = new stuentity ();
Stud4.Setage (30);
stud4.setName ("aad");
list.add (Stud1);
list.add (Stud2);
list.add (Stud3);
list.add (Stud4);
Collections.sort (Liste, neue vergleichste ());
für (Stuentity Stud: Liste) {
System.out.println (Stud.getage ()+":"+stud.getName ());
}
}
/**
*
*/
@Override
public int compare (stuentity stud1, stuentity stud2) {
// 根据姓名排序
int maxname = stud1.getName (). vergleicheto (stud2getname ());
if (maxname! = 0)
MAXNAME zurückgeben;
// 根据年龄排序
int maxage = stud1.getage ()-stud2getage ();
// if (maxage! = 0)
Maxage zurückgeben;
}
}
输出 :
复制代码代码如下::
30: aad
10: ABC
10: BDC
5: Bdd
java 的比较器很有用 , 实现 vergleicher 接口的 vergleiche ()这个回调方法来制定排序规则 , 然后调用 collections.sort (Liste, neue vergleichest ()); 就可以将 Liste 进行排序 , 很方便
使用时要注意 Vergleichen Sie ()方法中的 return 的先后顺序 , 优先的排序规则要写在前面
实体类 :
复制代码代码如下::
/**
* 学生实体类
*
*/
öffentliche Klasse Stuentity {
Private int studentid; // 学号
privater Zeichenfolge Name;
privates int Alter;
privater String Sex; // 性别
private int Roomnumber; // 房间号
privater String -Abschluss; // 学位
private int grade; // 年级
private String DeviceNumber; // 设备号
Private int GroupNumber; // 所属的小组
Privat int Javascore; // Java 成绩
private int netscore; // net 成绩
public String getDegree () {
Return -Abschluss;
}
public void setDeGree (String -Grad) {
dieses.
}
public int getgrad () {
Return -Note;
}
public void setgrad (int grade) {
this.grade = grade;
}
/**
* 初始化有参构造函数
*
* @param id
* @param Name
* @Param Alter
* @param Sex
* @Param RoomNumber
* @param DeviceNumber
* @param GroupNumber
* @param javascore
* @param netScore
*/
Öffentliche Stuentität (Stringname, int Alter, String Sex, int Roomnumber,
String DeviceNumber, int GroupNumber, int Javascore, int netScore) {
this.name = name;
this.age = Alter;
this.sex = sex;
this.roomnumber = roomNumber;
this.devicenumber = DeviceNumber;
this.groupNumber = GroupNumber;
this.javascore = javascore;
this.netScore = netScore;
}
/**
* 无参构造函数
*/
public stuentity () {
}
public int getJavascore () {
Rückkehr Javascore;
}
public void setjavascore (int javascore) {
this.javascore = javascore;
}
public int getNetScore () {
NetScore zurückgeben;
}
public void setNetScore (int netScore) {
this.netScore = netScore;
}
public int getStudentid () {
kehren studentid zurück;
}
public void setStudentid (int studentid) {
this.studentid = studentId;
}
public String getName () {
Rückgabename;
}
public void setName (String Name) {
this.name = name;
}
public int getageage () {
Rückkehralter;
}
public void setage (int ay) {
this.age = Alter;
}
public String getSex () {
Sex zurückkehren;
}
public void setsex (String Sex) {
this.sex = sex;
}
public int getroomnumber () {
Return Roomnumber;
}
public void setroomNumber (int raumnummer) {
this.roomnumber = roomNumber;
}
public String getDevicenumber () {
Rückgabe der DeviceNumber;
}
public void setDevicenumber (String DeviceNumber) {
this.devicenumber = DeviceNumber;
}
public int getgroupNumber () {
Return GroupNumber;
}
public void setGroupNumber (int GroupNumber) {
this.groupNumber = GroupNumber;
}
}