JDK1.8 List 转Map

时间:2025-02-15 07:52:46

 

List 转Map 
 

Map<Integer, ErroSendDO> mapErroSendValue = new HashMap<Integer, ErroSendDO>();

List<ErroSendDO> list = (query);

mapErroSendValue = () .collect((ErroSendDO::getId, a -> a, (k1, k2) -> k1));
			
		

List<MenuDO> listMenu = (params) ;
Map<Long,String> map = ().collect((MenuDO::getMenuId, MenuDO::getName));

 

有序的 List 转Map 

Map<String, ColunmMpDO> mapColunmMpDO = new LinkedHashMap<String, ColunmMpDO>();

List<ColunmMpDO> list = (query); //查询数据库得到list集合

mapColunmMpDO = () .collect((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 = (query); //查询数据库得到list集合

mapRule = ().collect((RuleDO::getElecId, s -> {
				List<RuleDO> l = new ArrayList<>();
				(s);
				return l;
			}, (List<RuleDO> s1, List<RuleDO> s2) -> {
				(s2);
				return s1;
			}));

  List 排序

 List<RuleLogDO> ruleLogList = (params,"");
 ((RuleLogDO::getRuleTypeVal));//升序
 ((RuleLogDO::getRuleTypeVal).reversed()); //降序



List<String[]> list = new ArrayList<>();
(list, (s -> s[1])); //按照数组中一个下标值排序(字母)


//按照数组中一个下标值排序 (数字)
(list, (s ->  (s[1])));
//倒序
(list); 

List 其中一个抽取其中一个对象 

List<LoginlogDO> loginlogList = (query);
List<String> userIds = ().map(p -> ()).collect(());



//抽取其中一个对象并且去重
 userids = ().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 = ();
     return t -> ((t));
}