1,List>格式
这种排序方式有bug,如果item.get(sortField)是数字,toString()之后排序是不正确的
//排序
Comparator> comparator = Comparator.comparing(item ->item.get(sortField).toString());if (Constant.SORT_TYPE_ASC ==sortType){//升序
resourceList.sort(comparator);
}else{
resourceList.sort(comparator.reversed());
}
2,List格式
resultList.sort(Comparator.comparing(MetaDataModel::getOrder));
dictVoList.sort(Comparator.comparingInt(DictVo::getOrder));
3,Set格式
public static void test2(){
Set students = new HashSet<>();
Student student1 = new Student(1,"李四",1);
Student student2 = new Student(2,"张三",3);
Student student3 = new Student(3,"王麻",2);
students.add(student1);
students.add(student2);
students.add(student3);
List studentList1 = new ArrayList<>(students);
studentList1.sort(Comparator.comparing(Student::getAge));
System.out.println(studentList1);
}
4,Set格式
public static voidtest3(){
Set sets = new HashSet<>();
sets.add("aa");
sets.add("ee");
sets.add("cc");//倒序
Set treeSetDesc = new TreeSet<>((o1, o2) ->o2.compareTo(o1));
treeSetDesc.addAll(sets);
System.out.println(treeSetDesc);//升序
Set treeSetAsc = new TreeSet<>((o1, o2) ->o1.compareTo(o2));
treeSetAsc.addAll(sets);
System.out.println(treeSetAsc);
}