复制代码代码如下:
import java.util.arrayList;
import java.util.collections;
importar java.util.comparator;
import java.util.list;
Comparador de implementos de comparación de clase pública <Stuentity> {
/**
* @param args
*/
public static void main (string [] args) {
List <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 ();
stud3.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);
Colección.sort (List, New Comparatortest ());
para (Stuentity Stud: List) {
System.out.println (stud.getage ()+":"+stud.getName ());
}
}
/**
*
*/
@Anular
Public int Compare (Stuentity Stud1, Stuentity Stud2) {
// 根据姓名排序
int maxname = stud1.getName (). CompareTo (stud2.getName ());
if (maxname! = 0)
devolver maxname;
// 根据年龄排序
int maxage = stud1.getage ()-stud2.getage ();
// if (maxage! = 0)
return maxage;
}
}
输出 :
复制代码代码如下:
30: Aad
10: ABC
10: BDC
5: BDD
Java 的比较器很有用 , 实现 Comparador 接口的 Compare ()这个回调方法来制定排序规则 然后调用 然后调用 colección.sort (lista, nueva comparatortest ()); 就可以将 Lista 进行排序 很方便 很方便
使用时要注意 Compare ()方法中的 return 的先后顺序 优先的排序规则要写在前面 优先的排序规则要写在前面
实体类 :
复制代码代码如下:
/**
* 学生实体类
*
*/
Estuencia de clase pública {
Private int StudentId; // 学号
nombre de cadena privada;
edad privada int;
sexo de cadena privada; // 性别
Private int RoomNumber; // 房间号
Grado de cadena privada; // 学位
Grado privado int; // 年级
cadena privada deviceNumber; // 设备号
Private int GroupNumber; // 所属的小组
privado int javascore; // java 成绩
privado int netscore; // net 成绩
public String getDegree () {
Grado de retorno;
}
public void setDegree (grado de cadena) {
this.degree = grado;
}
public int getgrade () {
Grado de retorno;
}
public void setgrade (int grado) {
this.grade = grado;
}
/**
* 初始化有参构造函数
*
* @param ID
* @param nombre
* @param edad
* @param sexo
* @param Roomnumber
* @param deviceNumber
* @param groupnumber
* @param javascore
* @param netscore
*/
Estuencia pública (nombre de cadena, int Age, String Sex, Int RoomNumber,
String DeviceNumber, int GroupNumber, int javascore, int netscore) {
this.name = name;
this.age = edad;
this.sex = sexo;
this.roomNumber = RoomNumber;
this.devicEnumber = deviceEnumber;
this.groupNumber = GroupNumber;
this.javascore = javascore;
this.netscore = netscore;
}
/**
* 无参构造函数
*/
Public Stuentity () {
}
public int getJavascore () {
regresar Javascore;
}
public void setJavascore (int javascore) {
this.javascore = javascore;
}
public int getNetsCore () {
devolver netscore;
}
public void setnetscore (int netscore) {
this.netscore = netscore;
}
public int getStudentId () {
devolver StudentId;
}
public void setstudentid (int studentid) {
this.studentid = studentId;
}
public String getName () {
nombre de retorno;
}
public void setName (nombre de cadena) {
this.name = name;
}
public int getage () {
edad de retorno;
}
Public void setage (int a age) {
this.age = edad;
}
public String getsex () {
Sexo de regreso;
}
public void setsex (String Sex) {
this.sex = sexo;
}
public int getroomNumber () {
Number de la habitación de regreso;
}
public void setroomNumber (int RoomNumber) {
this.roomNumber = RoomNumber;
}
public String getDeviceNumber () {
devolver deviceNumber;
}
public void setDevicEnumber (string deviceNumber) {
this.devicEnumber = deviceEnumber;
}
public int getGroupNumber () {
return groupnumber;
}
public void setGroupNumber (int groupNumber) {
this.groupNumber = GroupNumber;
}
}