List 转Map
Map<Integer, ErroSendDO> mapErroSendValue = new HashMap<Integer, ErroSendDO>();
List<ErroSendDO> list = erroSendDao.list(query);
mapErroSendValue = list.stream() .collect(Collectors.toMap(ErroSendDO::getId, a -> a, (k1, k2) -> k1));
List<MenuDO> listMenu = menuService.list(params) ;
Map<Long,String> map = listMenu.stream().collect(Collectors.toMap(MenuDO::getMenuId, MenuDO::getName));
有序的 List 转Map
Map<String, ColunmMpDO> mapColunmMpDO = new LinkedHashMap<String, ColunmMpDO>();
List<ColunmMpDO> list = colunmMpService.list(query); //查询数据库得到list集合
mapColunmMpDO = list.stream() .collect(Collectors.toMap(ColunmMpDO::getColumnCode, a -> a, (k1, k2) -> k2,LinkedHashMap::new));//转为一个有序的map
List 转Map 重复的list合并
Map<String, List<RuleDO>> mapRule = new HashMap<String, List<RuleDO>>();
List<RuleDO> list = iRuleService.list(query); //查询数据库得到list集合
mapRule = list.stream().collect(Collectors.toMap(RuleDO::getElecId, s -> {
List<RuleDO> l = new ArrayList<>();
l.add(s);
return l;
}, (List<RuleDO> s1, List<RuleDO> s2) -> {
s1.addAll(s2);
return s1;
}));
List 排序
List<RuleLogDO> ruleLogList = ruleLogService.groupType(params,"");
ruleLogList.sort(Comparator.comparing(RuleLogDO::getRuleTypeVal));//升序
ruleLogList.sort(Comparator.comparing(RuleLogDO::getRuleTypeVal).reversed()); //降序
List<String[]> list = new ArrayList<>();
Collections.sort(list, Comparator.comparing(s -> s[1])); //按照数组中一个下标值排序(字母)
//按照数组中一个下标值排序 (数字)
Collections.sort(list, Comparator.comparingInt(s -> Integer.parseInt(s[1])));
//倒序
Collections.reverse(list);
List 其中一个抽取其中一个对象
List<LoginlogDO> loginlogList = loginlogService.list(query);
List<String> userIds = loginlogList.stream().map(p -> p.getUserid()).collect(Collectors.toList());
//抽取其中一个对象并且去重
userids = loginlogs.stream().distinct().filter(distinctByKey(LoginlogDO::getUserid)).map(LoginlogDO::getUserid);
/**
* 对象属性去重
* @param keyExtractor
* @param <T>
* @return
*/
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Set<Object> seen = ConcurrentHashMap.newKeySet();
return t -> seen.add(keyExtractor.apply(t));
}