先定义一个Person类
package DataStruct;
/**
* Description:xxx<br/>
* Copyright (c) , 2019, LafreeZhao <br/>
* This program is protected by copyright laws. <br/>
* Date:2019年03月03日
*
* @author 赵炳泉
* @version : 1.0
*/
public class Person {
private String classID;
private int sNum;
public Person(String classID, int sNum) {
this.classID = classID;
this.sNum = sNum;
}
public String getClassID() {
return classID;
}
public void setClassID(String classID) {
this.classID = classID;
}
public int getsNum() {
return sNum;
}
public void setsNum(int sNum) {
this.sNum = sNum;
}
@Override
public String toString() {
return "Person{" +
"classID='" + classID + '\'' +
", sNum=" + sNum +
'}';
}
}
在创建排序类,使用匿名内部类实现Comparetor
package DataStruct;
import java.util.*;
/**
* Description:xxx<br/>
* Copyright (c) , 2019, LafreeZhao <br/>
* This program is protected by copyright laws. <br/>
* Date:2019年03月03日
*
* @author 赵炳泉
* @version : 1.0
*/
public class PersonSort {
public static void main(String[] args) {
List<Person> plist = new ArrayList<>();
Person p1 = new Person("S023",104);
Person p2 = new Person("S021",105);
Person p3 = new Person("S030",115);
Person p4 = new Person("S030",114);
plist.add(p1);
plist.add(p2);
plist.add(p3);
plist.add(p4);
System.out.println("0"+plist);
Collections.sort(plist,new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
if (o1.getClassID().compareToIgnoreCase(o2.getClassID())>0){
return 1;
}else if(o1.getClassID().compareToIgnoreCase(o2.getClassID())==0){
return o1.getsNum()-o2.getsNum();
}else{
return -1;
}
}
});
System.out.println("排序后"+plist);
}
}
执行结果
0[Person{classID='S023', sNum=104}, Person{classID='S021', sNum=105}, Person{classID='S030', sNum=115}, Person{classID='S030', sNum=114}]
排序后[Person{classID='S021', sNum=105}, Person{classID='S023', sNum=104}, Person{classID='S030', sNum=114}, Person{classID='S030', sNum=115}]
Process finished with exit code 0