有条件地初始化Collection(在此示例中为Map)的最有效方法是什么?就最佳实践而言,您是否更喜欢一个解决方案?
我提供了三种解决方案,我想请您提供反馈或意见。
第一:
Map<String, User> userMap;
if (isNotEmpty(userIdList)) {
userService
.getUsers(userIdList)
.stream()
.collect(Collectors.toMap(UserDto::getUserName, Function.identity()));
} else {
userMap = new HashMap<>();
}
第二:
Map<String, User> userMap = new HashMap<>();
if (isNotEmpty(userIdList)) {
userService
.getUsers(userIdList)
.stream()
.collect(Collectors.toMap(UserDto::getUserName, Function.identity()));
}
第三:
Map<String, User> userMap = isNotEmpty(userIdList) ?
userService
.getUsers(userIdList)
.stream()
.collect(Collectors.toMap(UserDto::getUserName, Function.identity()))
: new HashMap<>();
这里的附加约束是,在使用
userIdList
之前,您需要验证null
和empty()
最佳答案
我将完全删除该条件。如果您串流一个空列表并将其收集到地图,则会得到一个空地图:
Map<String, User> userMap =
userService.getUsers(userIdList)
.stream()
.collect(Collectors.toMap(UserDto::getUserName, Function.identity()));