Java 8 如何获取可选列表中特定索引处的元素? optionalList=getList(someInput);
如何从该列表中检索元素?Java 8 如何获取可选列表中特定索引处的元素? optionalList=getList(someInput);,java-8,optional,Java 8,Optional,如何从该列表中检索元素? 如何迭代此列表?您可以将列表展开,并像普通列表一样使用它 Optional<List<Long>> optionalList = getList(someInput); 你可以检查一下是否有 optionalList.orElseGet(Collections::emptyList) .forEach(System.out::println); if(optionalList.isPresent()){ List myList=opt
如何迭代此列表?您可以将列表展开,并像普通列表一样使用它
Optional<List<Long>> optionalList = getList(someInput);
你可以检查一下是否有
optionalList.orElseGet(Collections::emptyList)
.forEach(System.out::println);
if(optionalList.isPresent()){
List myList=optionalList.get();
//存在过程列表
}否则{
//过程不存在
}
或者继续使用optional访问其中一个元素
if (optionalList.isPresent()) {
List<Long> myList = optionalList.get();
// process list present
} else {
// process not present
}
Optional longAt5=optionalList.filter(list->list.size()>5)
.map(list->list.get(5));
检查是否存在值,然后执行一些逻辑操作:
Optional<Long> longAt5 = optionalList.filter(list -> list.size() > 5)
.map(list -> list.get(5));
至于处理列表,您可以执行以下操作:
optionalList.ifPresent(list -> {
...
});
如果您想避免if检查,那么可能-->
optionalList.orElse(Collections.emptyList()).forEach(e->{…})代码>?检索索引(比如5)处的元素如何?检查可选项中是否存在值,然后对列表执行任何操作。两个答案已经向您展示了如何做。另外orElseGet(Collections::emptyList)
我认为Collections.emptyList
使用Supplier
并没有那么昂贵,因为iti倾向于尽可能选择方法引用,我错过了forEach(…)
,changed中的方法引用。
optionalList.ifPresent(list -> {
...
});
optionalList.orElseGet(() -> Collections.emptyList()).forEach(e -> {...});