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

How to convert single element list to java 8 optional

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

丑陋的代码:

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

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

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

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() 方法获得同样的成功。