mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-08-18 20:38:02 +08:00
MapUtil.map对null友好,且修复了测试用例中分组问题
This commit is contained in:
@@ -82,7 +82,7 @@ public class MapUtilTest {
|
||||
// 如你所见,它是一个map,key由用户id,value由用户组成
|
||||
Map<Long, User> idUserMap = Stream.iterate(0L, i -> ++i).limit(4).map(i -> User.builder().id(i).name(customers.poll()).build()).collect(Collectors.toMap(User::getId, Function.identity()));
|
||||
// 如你所见,它是一个map,key由分组id,value由用户ids组成,典型的多对多关系
|
||||
Map<Long, List<Long>> groupIdUserIdsMap = groups.stream().flatMap(group -> idUserMap.keySet().stream().map(userId -> UserGroup.builder().groupId(group.getId()).userId(userId).build())).collect(Collectors.groupingBy(UserGroup::getUserId, Collectors.mapping(UserGroup::getGroupId, Collectors.toList())));
|
||||
Map<Long, List<Long>> groupIdUserIdsMap = groups.stream().flatMap(group -> idUserMap.keySet().stream().map(userId -> UserGroup.builder().groupId(group.getId()).userId(userId).build())).collect(Collectors.groupingBy(UserGroup::getGroupId, Collectors.mapping(UserGroup::getUserId, Collectors.toList())));
|
||||
|
||||
// 神奇的魔法发生了, 分组id和用户ids组成的map,竟然变成了订单编号和用户实体集合组成的map
|
||||
Map<Long, List<User>> groupIdUserMap = MapUtil.map(groupIdUserIdsMap, (groupId, userIds) -> userIds.stream().map(idUserMap::get).collect(Collectors.toList()));
|
||||
@@ -98,7 +98,8 @@ public class MapUtilTest {
|
||||
Assert.assertEquals("竹鼠发烧找华农", users.get(2).getName());
|
||||
Assert.assertEquals("朴实无华朱一旦", users.get(3).getName());
|
||||
});
|
||||
// 能写代码真开心
|
||||
// 对null友好
|
||||
MapUtil.map(MapUtil.of(0, 0), (k, v) -> null).forEach((k, v) -> Assert.assertNull(v));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user