转换为列表结果 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,然后得到了一个 MenuPropertiesDTOList<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列表。