java如何让list按照list里面的某个字段排序,list里面的有很多字段!

2024-11-02 15:09:06
推荐回答(4个)
回答1:

给你个例子看下

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class $ {

    public static void main(String[] args) {

        List> data = new ArrayList>();

        init(data);

        System.out.println("排序前:");
        System.out.println(data);
        sort(data);
        System.out.println("排序后:");
        System.out.println(data);
    }

    private static void sort(List> data) {

        Collections.sort(data, new Comparator() {

            public int compare(Map o1, Map o2) {

                Integer a = (Integer) o1.get("PRECOUNTOUT");
                Integer b = (Integer) o2.get("PRECOUNTOUT");

                // 升序
                return a.compareTo(b);

                // 降序
                // return b.compareTo(a);
            }
        });
    }

    private static void init(List> data) {

        Map map = new HashMap();
        map.put("COUNTTICKET", 1);
        map.put("PRECOUNTOUT", 2);
        data.add(map);

        map = new HashMap();
        map.put("COUNTTICKET", 6);
        map.put("PRECOUNTOUT", 7);
        data.add(map);

        map = new HashMap();
        map.put("COUNTTICKET", 8);
        map.put("PRECOUNTOUT", 5);
        data.add(map);

        map = new HashMap();
        map.put("COUNTTICKET", 2);
        map.put("PRECOUNTOUT", 3);
        data.add(map);
    }
}

回答2:

让你的list的泛型实现java.lang.Comparable接口即可

回答3:

泛型类实现Comparable接口,重写 compareTo方法。

回答4:

使用ArrayList,是有序的