dataList 为user的list集合形式,转map:
Map<Long, User> dataMap = dataList.stream().collect(Collectors.toMap(User::getDeviceId, user-> user));
//也可以是user中的某个属性
Map<Long, String> dataMap = dataList.stream().collect(Collectors.toMap(User::getDeviceId, user-> user.getUsername()));
或者
Map<Long, User> dataMap = dataList.stream().collect(Collectors.toMap(User::getDeviceId, Function.identity()));
注意:
转map时要保证key值唯一,不然会抛异常,不唯一时应先去重,用stream去重:
1.对比某个字段去重 distinctByKey
List<User> uniqueUsers = dataList.stream()
.filter(distinctByKey(u -> u.getName()))
.collect(Collectors.toList());
2.对比整个对象去重
dataList.stream().distinct()