Java学习之排序方法总结

package com.person;

import java.math.BigDecimal;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;

public class SordTest {

    public static void main(String[] args) {  
        List<Map<String, Object>> list = BuildListMap();
        //BigDecimal 排序
        Collections.sort(list, (o1, o2) -> {
            // 取出需要排序的字段
            BigDecimal sort1 = (BigDecimal)o1.get("syl");
            BigDecimal sort2 = (BigDecimal)o2.get("syl");
            // 降序, 参数调换位置就是升序
            return sort2.compareTo(sort1);
        });
        list.forEach(System.out::println);
        //String 排序
        Collections.sort(list, (o1, o2) -> {
            // 取出需要排序的字段
            String sort1 = o1.get("name").toString();
            String sort2 = o2.get("name").toString();
            // 排序
            Collator instance = Collator.getInstance(Locale.CHINA);
            // Collator instance = Collator.getInstance(); 其他排序方式
            // 降序, 参数调换位置就是升序
            return instance.compare(sort1, sort2);
        });
        list.forEach(System.out::println);
    }
    
    public static List<Map<String, Object>> BuildListMap() {
        List<Map<String, Object>> listmap5 = new ArrayList<Map<String, Object>>();
        for (int i = 0; i < 10; i++) {
            Map<String, Object> list_map = new HashMap<>();
            list_map.put("yysyl", i);
            list_map.put("name", "name"+i);
            list_map.put("syl", new BigDecimal(i));
            listmap5.add(list_map);
        }
        return listmap5;
    }
}

/******************************************后续继续补充完善哦********************************************/

posted @ 2022-07-06 19:27  快乐的小小码农  阅读(234)  评论(0)    收藏  举报