共计 1765 个字符,预计需要花费 5 分钟才能阅读完成。
package com.itheima.demo05.Collections;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
- java.utils.Collections 是集合工具类,用来对集合进行操作。部分方法如下:public static <T> void sort(List<T> list,Comparator<? super T>): 将集合中元素按照指定规则排序。Comparator 和 Comparable 的区别
Comparable: 自己 (this) 和别人 (参数) 比较, 自己需要实现 Comparable 接口, 重写比较的规则 compareTo 方法
Comparator: 相当于找一个第三方的裁判, 比较两个
Comparator 的排序规则:
o1-o2: 升序
*/
public class Demo03Sort {
public static void main(String[] args) {ArrayList<Integer> list01 = new ArrayList<>();
list01.add(1);
list01.add(3);
list01.add(2);
System.out.println(list01);//[1, 3, 2]
Collections.sort(list01, new Comparator<Integer>() {
// 重写比较的规则
@Override
public int compare(Integer o1, Integer o2) {
//return o1-o2;// 升序
return o2-o1;// 降序
}
});
System.out.println(list01);
ArrayList<Student> list02 = new ArrayList<>();
list02.add(new Student("a 迪丽热巴",18));
list02.add(new Student("古力娜扎",20));
list02.add(new Student("杨幂",17));
list02.add(new Student("b 杨幂",18));
System.out.println(list02);
/*Collections.sort(list02, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
// 按照年龄升序排序
return o1.getAge()-o2.getAge();
}
});*/
// 扩展: 了解
Collections.sort(list02, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
// 按照年龄升序排序
int result = o1.getAge()-o2.getAge();
// 如果两个人年龄相同, 再使用姓名的第一个字比较
if(result==0){result = o1.getName().charAt(0)-o2.getName().charAt(0);
}
return result;
}
});
System.out.println(list02);
}
}
package com.itheima.demo05.Collections;
public class Student {
private String name;
private int age;
public Student() {}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public int getAge() {return age;}
public void setAge(int age) {this.age = age;}
}
正文完
发表至: java
2019-07-04