在实际开发过程中,一个list一开始一般是无序的,而在实际开发中我们对List的数据进行排序展示,Java中提供对集合中的元素进行操作的工作类Collections,其中的Sort方法就是对集合的数据进行排序的方法,下面直接使用该方法.
/**
* 学生类
*/
public class Student {
public int age;
public String name;
public String address;
public Student(int age,String name,String address){
this.age = age;
this.name = name;
this.address = address;
}
@Override
public String toString() {
return "Student [age=" + age + ", name=" + name + ", address="
+ address + "]";
}
}
//data为student的list,下面对学生们年龄有小到大的排序
public class Main {
public static void main(String args[]){
List<Student> data = new ArrayList();
Student student1 = new Student(10,"张三","广州");
Student student2 = new Student(40,"李四","深圳");
Student student3 = new Student(30,"刘六","南昌");
Student student4 = new Student(20,"吴王","厦门");
data.add(student1);
data.add(student2);
data.add(student3);
data.add(student4);
Collections.sort(data,new Comparator<Student>(){
//重点解析方法的操作方法:
//compare进行排序的方法实际上就是两个for循环进行嵌套,
//它的原理实际上是以下代码
// for(int i = 1;i < data.size() ; i ++){
// for(int j = 0 ; j < i ; j ++){
// //内部逻辑处理
// }
public int compare(Student o1, Student o2) {
//参数:o1是当前正在与别的比较的数据(后面的数据),o2是循环的数据(前面的数据),也就是说在原始数据中o1比o2的index值大
//返回值:int,大于0的时候,保持顺序不变;小于0的时候,调转顺序.
System.out.println(o1.toString() + o2.toString());
if(o1.age > o2.age){
return 1;
}else if(o1.age < o2.age){
return -1;
}
return 0;
}
});
System.out.println();
System.out.println();
System.out.println();
for(Student student : data){
System.out.println(student.toString());
}
}
}