--- title: Java常用代码块 date: 2020-10-28 tags: Java comments: false cover: https://static.jqwei.com/blog/img/IMG_3461.PNG categories: 运维工具 --- ## java常用代码块 > 为了减少手写出现的错误,可以直接复制使用,大部分是经常使用的代码,对map操作,list 分组,排序,后续可以放到IDEA做成快捷键 | 对象 | 排序 | 分组 |分页| | -------- | -------- | -------- |-------| | list | √ | √ |√| | map | √ | || | set | | || #### map 根据Key排序 ```Java private static Map sortByKey(Map map) { Map result = new LinkedHashMap<>(map.size()); map.entrySet().stream() .sorted(Map.Entry.comparingByKey()) .forEachOrdered(e -> result.put(e.getKey(), e.getValue())); return result; } ``` #### list 对象根据某个字段分组 ``` Java //1 按照某个字段 Map> map = demoList.stream().collect(Collectors.groupingBy(Object::getAttr)); //2 按照多个字段 Map> groupBy = objectList.stream().collect(Collectors .groupingBy(o -> o.getAttr1() + "_" + o.getAttr2())); ``` #### list 用stream进行排序 . ``` Java //根据单个属性排序 List stortList = list.stream().sorted().collect(Collectors.toList()); //根据对象某个属性排序 List sortList = objectList.stream().sorted(Comparator.comparing(Object::getAttr) .reversed()).collect(Collectors.toList()); ``` #### list 用Guava进行拆分分页 ```Java List> splitList = Lists.partition(list, 200); ```