转换为列表结果 Java
Converting to List result in Java
我有以下方法:
public MenuExpandedDTO findMenuExp(UUID menuUuid) {
final MenuDTO menu = menuService.findByUuid(menuUuid);
final MenuPropertiesDTO propertiesDTO = new MenuPropertiesDTO(
menu.getUuid(),
menu.getName()
);
final List<GroupExpDTO> groups = menuGroupService
.findAllByMenuUuid(menuUuid).stream()
.map(menuGroup -> {
UUID groupUuid = menuGroup.getGroupUuid();
return findGroupExp(groupUuid);
})
.collect(Collectors.toList());
return new MenuExpDTO(propertiesDTO, groups, null, null);
}
在这个方法中,我传递了一个 menuUuid
,然后得到了一个 MenuPropertiesDTO
和 List<GroupExpDTO>
的组合。
我想传递一个List<menuUuid>
而不是一个menuUuid
然后根据这个列表中的uuid得到结果。但是,我很困惑 Java 中是否有合适的方法。我认为没有必要使用循环,可以使用 stream
对其进行评估。但是真的不知道如何构造它或者是否可能。任何帮助将不胜感激。
如果我从问题和评论中理解正确,你需要一个方法,它以相同的方式工作,但用于 UUID 列表。
为此,您可以创建新方法,该方法将调用您已实现的方法。
public List<MenuExpandedDTO> findMenuExp(List<UUID> menuUuids) {
return menuUuids.stream()
// assuming this method is added to the same class, I'm referring 'this' here
.map(this::findMenuExp)
.collect(Collectors.toList());
}
此方法将大小等于 menuUuids.size()
的列表的 return 和 List<MenuExpandedDTO>
的第 i
个元素将对应于 i
个元素 menuUuids
列表。
我有以下方法:
public MenuExpandedDTO findMenuExp(UUID menuUuid) {
final MenuDTO menu = menuService.findByUuid(menuUuid);
final MenuPropertiesDTO propertiesDTO = new MenuPropertiesDTO(
menu.getUuid(),
menu.getName()
);
final List<GroupExpDTO> groups = menuGroupService
.findAllByMenuUuid(menuUuid).stream()
.map(menuGroup -> {
UUID groupUuid = menuGroup.getGroupUuid();
return findGroupExp(groupUuid);
})
.collect(Collectors.toList());
return new MenuExpDTO(propertiesDTO, groups, null, null);
}
在这个方法中,我传递了一个 menuUuid
,然后得到了一个 MenuPropertiesDTO
和 List<GroupExpDTO>
的组合。
我想传递一个List<menuUuid>
而不是一个menuUuid
然后根据这个列表中的uuid得到结果。但是,我很困惑 Java 中是否有合适的方法。我认为没有必要使用循环,可以使用 stream
对其进行评估。但是真的不知道如何构造它或者是否可能。任何帮助将不胜感激。
如果我从问题和评论中理解正确,你需要一个方法,它以相同的方式工作,但用于 UUID 列表。
为此,您可以创建新方法,该方法将调用您已实现的方法。
public List<MenuExpandedDTO> findMenuExp(List<UUID> menuUuids) {
return menuUuids.stream()
// assuming this method is added to the same class, I'm referring 'this' here
.map(this::findMenuExp)
.collect(Collectors.toList());
}
此方法将大小等于 menuUuids.size()
的列表的 return 和 List<MenuExpandedDTO>
的第 i
个元素将对应于 i
个元素 menuUuids
列表。