美文网首页
自定义compare方法 List

自定义compare方法 List

作者: 小铭铭_7c47 | 来源:发表于2018-11-28 22:35 被阅读0次
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 Test1 {
    public static void main(String[] args) {
        List<Map<String,String>>data = new ArrayList<Map<String,String>>();
        init(data);
        System.out.println("排序前:");
        System.out.println(data);
        sort(data);
        System.out.println("排序后:");
        System.out.println(data);
    }

    /**
     * 根据key2排序
     */
    private static void sort(List<Map<String, String>> data) {

        Collections.sort(data, new Comparator<Map>() {

            public int compare(Map o1, Map o2) {

                String a = (String) o1.get("KEY2");
                String b = (String) o2.get("KEY2");

                // 升序 0 -> 9 -> A -> Z -> a -> z
                return a.compareTo(b);
                // 降序
                // return b.compareTo(a);
            }
        });
    }

    private static void init(List<Map<String, String>> data) {

        Map<String, String> map = new HashMap<String, String>();
        map.put("KEY1", "a");
        map.put("KEY2", "abd");
        data.add(map);

        map = new HashMap<String, String>();
        map.put("KEY1", "b");
        map.put("KEY2", "abc");
        data.add(map);

        map = new HashMap<String, String>();
        map.put("KEY1", "c");
        map.put("KEY2", "d");
        data.add(map);

        map = new HashMap<String, String>();
        map.put("KEY1", "d");
        map.put("KEY2", "a");
        data.add(map);
    }
}

打印结果:
排序前:
[{KEY2=abd, KEY1=a}, {KEY2=abc, KEY1=b}, {KEY2=d, KEY1=c}, {KEY2=a, KEY1=d}]
排序后:
[{KEY2=a, KEY1=d}, {KEY2=abc, KEY1=b}, {KEY2=abd, KEY1=a}, {KEY2=d, KEY1=c}]

相关文章

网友评论

      本文标题:自定义compare方法 List

      本文链接:https://www.haomeiwen.com/subject/ybdtcqtx.html