如何很好地将包含一个或零个元素的列表转换为可选?
丑陋的代码:
List<Integer> integers = new ArrayList<>();
Optional<Integer> optional = integers.size() == 0 ?
Optional.empty() :
Optional.of(integers.get(0));
您可以使用Stream#findFirst() https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#findFirst--方法,其中:
返回一个描述此流的第一个元素的可选值,如果流为空,则返回一个空的可选值。
List<Integer> list = ...
Optional<Integer> optional = list.stream().findFirst();
或者,您也可以使用以下方法获得同样的成功Stream#findAny() https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#findAny-- method.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)