1 案例(一) public class SortedDemo { public static void main ( String [] args ) { List Province list = SortedDemo . demo (); System . out . println ( "排序后:" + list ); /** * 排序前[Province(id=1, name=贵州, localCode=1005
1 案例(一)
public static void main(String[] args) {
List<Province> list=SortedDemo.demo();
System.out.println("排序后:"+list);
/**
* 排序前[Province(id=1, name=贵州, localCode=1005), Province(id=2, name=黑龙江, localCode=1003), Province(id=3, name=安徽, localCode=1002), Province(id=4, name=内蒙古, localCode=1001), Province(id=5, name=云南, localCode=1004)]
* 排序后:[Province(id=4, name=内蒙古, localCode=1001), Province(id=3, name=安徽, localCode=1002), Province(id=2, name=黑龙江, localCode=1003), Province(id=5, name=云南, localCode=1004), Province(id=1, name=贵州, localCode=1005)]
*/
}
public static List<Province> demo(){
List<Province> provinces=new ArrayList<>();
provinces.add(new Province("1","贵州","1005"));
provinces.add(new Province("2","黑龙江","1003"));
provinces.add(new Province("3","安徽","1002"));
provinces.add(new Province("4","内蒙古","1001"));
provinces.add(new Province("5","云南","1004"));
System.out.println("排序前"+provinces);
//根据区号排序
return provinces
.stream()
.sorted(Comparator.comparing(Province::getLocalCode))
.collect(Collectors.toList());
}
}
2 案例(二)
package Stream;import lombok.*;
import java.util.Objects;
/**
* @Author yqq
* @Date 2021/10/17 16:55
* @Version 1.0
*/
public class Student implements Comparable<Student>{
private String name;
private Integer age;
private Integer score;
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", score=" + score +
'}';
}
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return name.equals(student.name) && age.equals(student.age) && score.equals(student.score);
}
public int hashCode() {
return Objects.hash(name, age, score);
}
public int compareTo(Student o) {
return -(score - o.score);
}
}public class demo01 {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
Collections.addAll(list,
new Student("lishi",22,20),
new Student("zhangshan",23,28),
new Student("wanger",24,19),
new Student("mazi",25,29),
new Student("mazi",25,29)
);
// list.stream().sorted().forEach(System.out::println);
//s1-s2:升序 s2-s1:降序
list.stream().sorted((s1,s2) -> s1.getAge()-s2.getAge()).forEach(System.out::println);
}
}