复制代码代码如下:
импортировать java.util.arraylist;
импортировать java.util.collections;
Импорт java.util.comparator;
импортировать java.util.list;
Открытый класс Comparatortest реализует компаратор <Stuentity> {
/**
* @param args
*/
public static void main (string [] args) {
Список <Stuentity> list = new ArrayList <Stuentity> ();
Stuentity Stud1 = new Stuentity ();
stud1.setage (10);
stud1.setName ("ABC");
Stuentity Stud2 = новая устойчивость ();
stud2.setage (10);
stud2.setname ("bdc");
Stuentity Stud3 = новая устойчивость ();
stud3.setage (5);
stud3.setname ("bdd");
Stuentity Stud4 = новая устойчивость ();
stud4.setage (30);
stud4.setname ("aad");
list.add (stud1);
list.add (stud2);
list.add (stud3);
list.add (stud4);
Collections.sort (list, new comparatortest ());
для (Stuentity Stud: List) {
System.out.println (stud.getage ()+":"+stud.getName ());
}
}
/**
*
*/
@Override
public int compare (Stuentity Stud1, Stuentity Stud2) {
// 根据姓名排序
int maxName = stud1.getName (). CompareTo (stud2.getName ());
if (maxname! = 0)
вернуть maxname;
// 根据年龄排序
int maxage = stud1.getage ()-stud2.getage ();
// if (maxage! = 0)
вернуть максимаж;
}
}
输出 :
复制代码代码如下:
30: Аад
10: ABC
10: BDC
5: BDD
java 的比较器很有用 , 实现 компаратор 接口的 Сравните () 这个回调方法来制定排序规则 , 然后调用 collections.sort (список, новый сравнение ()); 就可以将 Список 进行排序 , 很方便
使用时要注意 Сравните () 方法中的 return 的先后顺序 , 优先的排序规则要写在前面
实体类 :
复制代码代码如下:
/**
* 学生实体类
*
*/
общепринятый класс {
private int studentId; // 学号
Приватное название строки;
частный int возраст;
частный строковый секс; // 性别
Частный int roomnumber; // 房间号
Частная степень строки; // 学位
Частный int grade; // 年级
Private String DeviceNumber; // 设备号
private int GroupNumber; // 所属的小组
Private Int Javascore; // java 成绩
private int netscore; // net 成绩
public String getDegree () {
Степень возврата;
}
public void setDegree (String Deground) {
this.degree = степень;
}
public int getGrade () {
Оценка возврата;
}
public void setGrade (int grade) {
this.Grade = Grade;
}
/**
* 初始化有参构造函数
*
* @param id
* @param имя
* @param Age
* @param sex
* @param Roomnumber
* @param deviceNumber
* @param GroupNumber
* @param Javascore
* @param netscore
*/
Public Stuentity (название строки, int age, строковая секс, int roomnumber,
String deviceNumber, int GroupNumber, Int Javascore, Int Netscore) {
this.name = name;
this.age = возраст;
this.sex = sex;
this.roomnumber = Roomnumber;
this.deviceNumber = deviceNumber;
this.groupnumber = GroupNumber;
this.javascore = Javascore;
this.netscore = netscore;
}
/**
* 无参构造函数
*/
public Stuentity () {
}
public int getjavascore () {
вернуть Джаваскор;
}
public void setjavascore (int javascore) {
this.javascore = Javascore;
}
public int getnetscore () {
вернуть Netscore;
}
public void setnetscore (int netscore) {
this.netscore = netscore;
}
public int getStudentId () {
Возврат StudentId;
}
public void setStudentId (int studentId) {
this.studentid = StudentId;
}
public String getName () {
вернуть имя;
}
public void setName (string name) {
this.name = name;
}
public int getage () {
Возврат возраст;
}
public void setage (int age) {
this.age = возраст;
}
public String getSex () {
вернуть секс;
}
public void setsex (String Sex) {
this.sex = sex;
}
public int getroomnumber () {
вернуть комнату;
}
public void setroomnumber (int poomnumber) {
this.roomnumber = Roomnumber;
}
public String getDeviceNumber () {
вернуть DeviceNumber;
}
public void setDeviceNumber (String deviceNumber) {
this.deviceNumber = deviceNumber;
}
public int getGroupNumber () {
возврат GroupNumber;
}
public void setGroupNumber (int GroupNumber) {
this.groupnumber = GroupNumber;
}
}