1.实现Comparable接口中的compareTo(T o)方法
在每个实体类中实现该方法,之后可直接通过Collections.sort(list)对目标list进行排序,而排序的依据则是在compareTo(T o)中自定义实现
public class Address implements Comparable<Address>{
private int code;
private String address;
Address(int code,String address){
this.code = code;
this.address = address;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Address{" +
"code=" + code +
", address='" + address + '\'' +
'}';
}
@Override
public int compareTo(Address o) {
return o.getCode()-this.code;//按照code的大小进行排序,this.code位于后面则进行降序排列,反之为升序
}
}
主类测试
class Main {
public static void main(String[] args) {
List<Address> list = new ArrayList<>();
list.add(new Address(10,"长沙"));
list.add(new Address(50,"成都"));
list.add(new Address(20,"攀枝花"));
System.out.println(list.toString());
Collections.sort(list);
System.out.println(list.toString());
}
}
运行结果
通过打印的值可知此时按照自己设定的code降序排列