概述
groovy List 多字段排序
List<Map<String, Object>> list = [["loc": "A-02-01","code":"asdf"],["loc": "B-01-01","code":"ff"], ["loc": "B-01-01","code":"23"], ["loc": "A-01-04","code":"ghg"]] list.sort{a,b-> if (a.loc < b.loc) { return -1 }else if (a.loc == b.loc) { a.code.compareTo(b.code) } else { return 1 } }
Result: [[loc:A-01-04, code:ghg], [loc:A-02-01, code:asdf], [loc:B-01-01, code:23], [loc:B-01-01, code:ff]]
- package test.tool.gui.dbtool.util;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.List;
- public class Test {
- public static void main(String[] args) {
- List<Student> list = new ArrayList<Student>();
- //创建3个学生对象,年龄分别是20、19、21,并将他们依次放入List中
- Student s1 = new Student();
- s1.setAge(20);
- Student s2 = new Student();
- s2.setAge(19);
- Student s3 = new Student();
- s3.setAge(21);
- list.add(s1);
- list.add(s2);
- list.add(s3);
- System.out.println("排序前:"+list);
- Collections.sort(list, new Comparator<Student>(){
- /*
- * int compare(Student o1, Student o2) 返回一个基本类型的整型,
- * 返回负数表示:o1 小于o2,
- * 返回0 表示:o1和o2相等,
- * 返回正数表示:o1大于o2。
- */
- public int compare(Student o1, Student o2) {
- //按照学生的年龄进行升序排列
- if(o1.getAge() > o2.getAge()){
- return 1;
- }
- if(o1.getAge() == o2.getAge()){
- return 0;
- }
- return -1;
- }
- });
- System.out.println("排序后:"+list);
- }
- }
- class Student{
- private int age;
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return getAge()+"";
- }
- }
最后
以上就是迅速板凳为你收集整理的groovy给list排序groovy List 多字段排序的全部内容,希望文章能够帮你解决groovy给list排序groovy List 多字段排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复