What is the better practice for mapping objects in Stream API?
class SomeObject{
}
class SomeComplexObject {
private SomeObject someObject;
public SomeObject getSomeObject() {
return someObject;
}
}
class SomeMoreComplexObject {
private SomeComplexObject someComplexObject;
public SomeComplexObject getSomeComplexObject() {
return someComplexObject;
}
}
List<SomeMoreComplexObject> list;
1 - subsequent map() with methods references:
list.stream()
.map(SomeMoreComplexObject::getSomeComplexObject)
.map(SomeComplexObject::getSomeObject);
2 - single map() with lambda:
list.stream()
.map(smco -> smco.getSomeComplexObject().getSomeObject());
And why?