// streams/OptionalMap.java// (c)2017 MindView LLC: see Copyright.txt// We make no guarantees that this code is fit for any purpose.// Visit http://OnJava8.com for more book information.import java.util.*;import java.util.stream.*;import java.util.function.*;class OptionalMap {static String[] elements = { "12", "", "23", "45" };static Stream<String> testStream() {return Arrays.stream(elements);}static voidtest(String descr, Function<String, String> func) {System.out.println(" ---( " + descr + " )---");for(int i = 0; i <= elements.length; i++) {System.out.println(testStream().skip(i).findFirst() // Produces an Optional.map(func));}}public static void main(String[] args) {// If Optional is not empty, map() first extracts// the contents which it then passes// to the function:test("Add brackets", s -> "[" + s + "]");test("Increment", s -> {try {return Integer.parseInt(s) + 1 + "";} catch(NumberFormatException e) {return s;}});test("Replace", s -> s.replace("2", "9"));test("Take last digit", s -> s.length() > 0 ?s.charAt(s.length() - 1) + "" : s);}// After the function is finished, map() wraps the// result in an Optional before returning it:}/* Output:---( Add brackets )---Optional[[12]]Optional[[]]Optional[[23]]Optional[[45]]Optional.empty---( Increment )---Optional[13]Optional[]Optional[24]Optional[46]Optional.empty---( Replace )---Optional[19]Optional[]Optional[93]Optional[45]Optional.empty---( Take last digit )---Optional[2]Optional[]Optional[3]Optional[5]Optional.empty*/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。