JDK1.8 List 转Map

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));
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值