简体   繁体   English

如何将单个元素列表转换为java 8可选

[英]How to convert single element list to java 8 optional

How to nicely convert list containing one or zero elements to Optional? 如何很好地将包含一个或零个元素的列表转换为Optional?

The ugly code: 丑陋的代码:

List<Integer> integers = new ArrayList<>();

Optional<Integer> optional = integers.size() == 0 ?
        Optional.empty() :
        Optional.of(integers.get(0));

You can use the Stream#findFirst() method, which: 您可以使用Stream#findFirst()方法,其中:

Returns an Optional describing the first element of this stream, or an empty Optional if the stream is empty. 返回描述此流的第一个元素的Optional,如果流为空,则返回空Optional。

List<Integer> list = ...
Optional<Integer> optional = list.stream().findFirst();

Alternatively, with the same success you can also use the Stream#findAny() method. 或者,同样的成功,您也可以使用Stream#findAny()方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM