复制代码代码如下:
import java.util.arraylist;
Importer java.util.collections;
Importer java.util.comparator;
Importer java.util.list;
classe publique ComparatOrest implémente le comparateur <Stuentity> {
/ **
* @param args
* /
public static void main (String [] args) {
List <stuentity> list = new ArrayList <Stuentity> ();
Stuentité Stud1 = new Stuentity ();
Stud1.Setage (10);
Stud1.setName ("ABC");
Stuentité Stud2 = new Stuentity ();
Stud2.Setage (10);
Stud2.SetName ("BDC");
Stuentité Stud3 = new Stuentity ();
Stud3.Setage (5);
Stud3.SetName ("BDD");
Stuentité Stud4 = new Stuentity ();
Stud4.Setage (30);
Stud4.SetName ("aad");
list.add (stud1);
list.add (stud2);
list.add (stud3);
list.add (Stud4);
Collection.Sort (List, New ComparatOrest ());
for (Stuentity Stud: list) {
System.out.println (stud.getage () + ":" + stud.getName ());
}
}
/ **
*
* /
@Outrepasser
public int compare (Stuentity Stud1, Stuentity Stud2) {
// 根据姓名排序
int maxName = stud1.getName (). compareto (stud2tName ());
if (maxname! = 0)
retour maxname;
// 根据年龄排序
int maxage = stud1.getage () - Stud2.Getage ();
// if (maxage! = 0)
retour maxage;
}
}
:
复制代码代码如下:
30: Aad
10: ABC
10: BDC
5: BDD
Java 的比较器很有用 , 实现 Comparateur 接口的 Comparez () 这个回调方法来制定排序规则 , 然后调用 Collection.Sort (liste, new ComparatOrest ()); 就可以将 Liste 进行排序 , 很方便
使用时要注意 Comparez () 方法中的 Retour 的先后顺序 , 优先的排序规则要写在前面
:
复制代码代码如下:
/ **
* 学生实体类
*
* /
classe publique Stuentity {
private int étudiantid; // 学号
nom de chaîne privé;
Âge privé;
Sexe de cordes privées; // 性别
Int roomNumber privé; // 房间号
degré de chaîne privée; // 学位
Grade int privé; // 年级
Norme privée DeviceNumber; // 设备号
private int groupNumber; // 所属的小组
private int javascore; // java 成绩
private int netscore; // net 成绩
public String getdegree () {
diplôme de retour;
}
public void setDegree (String Degree) {
this.degree = degré;
}
public int getgrade () {
note de retour;
}
Public Void Setgrade (int grade) {
this.grade = grade;
}
/ **
* 初始化有参构造函数
*
* ID @param
* Nom @param
* @param Âge
* @param sexe
* @param roomNumber
* @param deviceNumber
* @param groupNumber
* @param javascore
* @param netscore
* /
Stuentité publique (nom de la chaîne, int, sexe de cordes, introomNumber,
String DeviceNumber, int groupNumber, int javascore, int netscore) {
this.name = name;
this.age = âge;
this.sex = sexe;
this.roomNumber = RoomNumber;
this.deviceNumber = DeviceNumber;
this.groupNumber = groupNumber;
this.javascore = javascore;
this.netsCore = netsCore;
}
/ **
* 无参构造函数
* /
Stuentité publique () {
}
public int getjavascore () {
retourner Javascore;
}
public void setjavascore (int javascore) {
this.javascore = javascore;
}
public int getnetscore () {
retour netscore;
}
public void setnetscore (int netscore) {
this.netsCore = netsCore;
}
public int getStudentid () {
retourner StudentID;
}
public void SetStudentid (int étudiantID) {
this.Studentid = StudentId;
}
public String getName () {
nom de retour;
}
public void setName (nom de chaîne) {
this.name = name;
}
public int getage () {
âge de retour;
}
Setage du public public (Int Age) {
this.age = âge;
}
String public getSEX () {
retourner le sexe;
}
public void setSex (String Sex) {
this.sex = sexe;
}
public int getroomNumber () {
Retour RoomNumber;
}
public void SetroomNumber (int RoomNumber) {
this.roomNumber = RoomNumber;
}
String public getDeviceNumber () {
retourner DeviceNumber;
}
public void setDeviceNumber (String DeviceNumber) {
this.deviceNumber = DeviceNumber;
}
public int getGroupNumber () {
Retour GroupNumber;
}
public void setGroupNumber (int groupNumber) {
this.groupNumber = groupNumber;
}
}