ArrayList 有时候存数的对象是个类,我们又需要根据其中一个属性值排序。下面我们来看看如何实现:
通过:Collections.sort()方法可以快速实现排序
但排序的规则需要你自己定义:有两种模式(都是去实例化Comparable接口中得compareTo方法)
一、单独实现接口:
class SortByName implements Comparator {
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2 = (Student) o2;
return s1.getName().compareTo(s2.getName());
}
}
Collections.sort(ArrayList <Student >,new SortByName ())
二、存储的类自己实现Comparable接口
public class TerminalMessage implements Comparable<TerminalMessage>{
String ip = "";
@Override
public int compareTo(@NonNull TerminalMessage o) {
String[] num1 = this.getIp().split("\\.");
String[] num2 = o.getIp().split("\\.");
int i = Integer.parseInt(num1[num1.length - 1]) - Integer.parseInt(num2[num2.length - 1]);
return i;
}
}
Collections.sort(ArrayList <TerminalMessage>)