如何将单元素列表转换为java 8可选 [英] How to convert single element list to java 8 optional

查看:532
本文介绍了如何将单元素列表转换为java 8可选的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将包含一个或零个元素的列表正确转换为可选?

How to nicely convert list containing one or zero elements to Optional?

丑陋的代码:

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

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


推荐答案

您可以使用 Stream#findFirst() 方法,其中:

You can use the Stream#findFirst() method, which:


返回描述此流的第一个元素的Optional,如果流为空,

Returns an Optional describing the first element of this stream, or an empty Optional if the stream is empty.



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

或者,同样成功,您还可以使用 Stream#findAny() 方法。

Alternatively, with the same success you can also use the Stream#findAny() method.

这篇关于如何将单元素列表转换为java 8可选的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆