将对象列表转换为Long列表

时间:2018-09-06 10:33:21

标签: java java-8 java-stream

我的课程如下:

Class1 {
    private Class2 class2;
    ...
}

我想将Class1的列表转换为Class2::getId()的列表,这是我尝试过的:

List<Class2> class2List = class1List.stream().map(Class1::getClass2).collect(Collectors.toList());
List<Long> class2Ids = class2List .stream().map(Class2::getId).collect(Collectors.toList());

在一条指令中没有办法做到这一点吗?

1 个答案:

答案 0 :(得分:9)

您可以随意链接多个中间操作...

class1List.stream()
          .map(Class1::getClass2)
          .map(Class2::getId)
          .collect(Collectors.toList());