拥有两个不同的对象集合,例如Set say A和List say B。
如果set包含任何对象需要获取firstobject一个字符串变量说objectA.getName()或者需要获取List ObjectB.getPerson()。getName()中的firstobject,如果两个集合都为空null应该是分配给字符串。
以下是我的代码:
Optional<String> name1 =a.stream().findfirst().map(P->p.getName());
String output = null;
if (name1.ispresent()) {
output = name1.get();
} else {
Optional<String> name2 =a.stream().findfirst().map(p1->p1.getPerson().getName());
if (name2.ispresent()) {
output = name2.get();
}
}
我在这里获得了正确的价值。请帮助我使用orElse配对使用地图。
答案 0 :(得分:0)
这个怎么样?
Set<String> a = ...
List<String> b = ...
String output = a.stream()
.findFirst()
.map(p -> p.getName())
.orElseGet(() -> b.stream()
.findFirst()
.map(p1 -> p1.getPerson().getName())
.orElse(null));
重要的部分是orElseGet
上的Optional
方法。它被懒惰地评估。