在Java 8中是否有与Javascript的Array.map等效的对应物?

2022-09-04 02:35:50

在Java中是否有与Javascript等效的Javascript?Array.map

我一直在玩Java 8:

List<Long> roleList = siteServiceList.stream()
        .map(s -> s.getRoleIdList()).collect(Collectors.toList());

但这不起作用,我不知道为什么警告说.Incompatible Type

如何在 Java8 中执行此操作?


答案 1

如果 是 a 并且你想得到 a,则必须使用 flatMap 代替:roleIdListList<Long>List<Long>

List<Long> roleList = siteServiceList.stream()
                .flatMap(s -> s.getRoleIdList().stream())
                .collect(Collectors.toList());

如果坚持使用返回类型,则应为:mapList<List<Long>>

List<List<Long>> roleList = siteServiceList.stream()
    .map(MyObject::getRoleIdList)
    .collect(Collectors.toList());

答案 2

推荐