将可选转换为列表

斯蒂芬·哈伯尔

我想将收集Optional到中List,这样我就可以得到一个包含单个元素的列表(如果存在可选元素)或一个空列表(如果没有)。

我(在Java 11中)提出的唯一方法是通过Stream:

var maybe = Optional.of("Maybe");
var list = maybe.stream().collect(Collectors.toList());

我知道,无论如何这应该是相当有效的,但是我想知道,是否有一种更简便的方法可以在不使用中间Stream的情况下将Optional转换为List?

帧/秒

我认为最惯用的方法是使用Optional.map

var maybe = Optional.of("Maybe");
var list = maybe.map(List::of).orElse(Collections.emptyList());

或者,如果您不想创建一个空的列表,而该列表可能最终没有被使用:

var list = maybe.map(List::of).orElseGet(Collections::emptyList);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章