首页 > 编程语言 >《Java核心技术II》消费Optional值

《Java核心技术II》消费Optional值

时间:2025-01-02 14:25:25浏览次数:3  
标签:util ifPresent Java results II import java Optional

消费Optional值

可选值存在的情况下消费该值

ifPresent,接受一个函数,存在则传递,否则不发生事情

optionalValue.ifPresent(v -> Process v);

值存在,添加到集合中:

optionalValue.ifPresent(v->results.add(v));

或者直接调用:optionalValue.ifPresent(result::add);

ifPresentOrElse,存在与否执行两套动作

optionalValue.ifPresentOrElse(v->System.out.println("发现"+v),()->logger.warning("不匹配"));

综合案例ifPresent
package streams.optional;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.logging.Logger;

public class OptionalIfPresent {

    public static void main(String[] args) throws IOException {
        // Path相对路径是指JavaCore2
        var contents = Files.readString(Path.of("./resources/alice.txt"));
        List<String> words = List.of(contents.split("\\PL+"));
        List results = new ArrayList<String>();
        // ifPresent
        Optional<String> startsWithQ = words.stream().filter(s -> s.startsWith("Q")).findFirst();
        startsWithQ.ifPresent(s -> System.out.println(s));
        // ifPresent(lambda)
        startsWithQ.ifPresent(s -> results.add(s));
        System.out.println(results);
        // ifPresentOrElse
        startsWithQ.ifPresentOrElse(s -> System.out.println("找到: " + s),
                () -> Logger.getAnonymousLogger().warning("不匹配"));
    }

}

标签:util,ifPresent,Java,results,II,import,java,Optional
From: https://blog.csdn.net/qq_36324341/article/details/144886089

相关文章

  • 大二Web课程设计——张家界旅游网站设计与实现(HTML+CSS+JavaScript) (2)
    ......
  • java开发
    常见问题01.java字符串split能否排除单引号或者双引号中的\n在Java中,String.split()方法并不能直接忽略字符串中引号(单引号或双引号)内的换行符。为了实现这个功能,你可以使用正则表达式,在分割字符串时排除引号内的换行符。解决方案:使用正则表达式排除引号中的换行符......
  • 利用Java爬虫获取亚马逊国际按关键字搜索商品的实践指南
    在数字化时代,数据的价值日益凸显,尤其是对于电商领域。亚马逊作为全球领先的电商平台,其商品信息的获取对于市场分析、价格比较、库存管理等有着重要的意义。本文将介绍如何使用Java编写爬虫,以获取亚马逊国际站点上按关键字搜索的商品信息,并提供详细的代码示例。1.项目结构和......
  • 利用Java爬虫获取店铺所有商品:技术实践与应用指南
    在电子商务的世界里,数据的获取和分析是企业获取市场洞察、优化营销策略的关键。对于电商平台上的店铺而言,掌握所有商品的信息对于库存管理、销售分析等方面至关重要。本文将带你深入了解如何使用Java编写爬虫程序,以获取特定店铺的所有商品信息,为你的电商数据分析提供强有力的支......
  • 让 Java 再次伟大 - 你不知道的 Java 之集成 Docker 的那些密事(一章节)
    学会这款全新设计的Java脚手架,从此面试不再怕!Docker的底层实现原理Docker是一种容器服务,为了方便理解你可以认为他是一个轻量级的虚拟机。通过Docker创建的容器,在宿主机上共享硬件资源和底层系统与接口,同时又能提供互相隔离的应用程序环境。这是怎么做到的?由于......
  • 【Java项目】基于SpringBoot+Vue的CSGO赛事管理系统
    源码获取:https://download.csdn.net/download/u011832806/89461573基于SpringBoot+Vue的CSGO赛事管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/109zhbBkTfpLZJx0Twg2afg?pw......
  • 【Java项目】基于SpringBoot+Vue的洪涝灾害应急信息管理系统的设计与实现(源码+LW+包运
    源码获取:https://download.csdn.net/download/u011832806/90001545基于SpringBoot+Vue的洪涝灾害应急信息管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven洪涝灾害应急信息管理系统是一个综合性的信息平台,旨在提供实时......
  • Cause: java.sql.SQLDataException: ORA-01841: (完整) 年份值必须介于 -4713 和 +999
    报错信息:###Theerrormayexistinfile[E:\IdeaProjects\FeiShuEHR\target\classes\mapper\ZzzHrOaQingJiaMapper.xml]###TheerrormayinvolvedefaultParameterMap###Theerroroccurredwhilesettingparameters###SQL:SELECTDANHAO,A0190,LEAVE_TYPEI......
  • 【转型大模型必看】Java开发者能否转型大模型?程序员的逆袭秘籍,转行不再是梦
    随着技术的不断进步,人工智能(AI)大模型已经成为当今科技领域最热门的话题之一。许多开发者开始考虑从传统的软件开发领域,如Java,转向人工智能领域,今天小编和大家一起来探讨Java开发者是否可以转型到人工智能大模型,转型的优势,薪资对比,以及转型所需的知识和学习路线等。01Java......
  • JavaScript 的核心特性和TypeScript 的高级概念
    JavaScript核心特性JavaScript是一种动态的、弱类型的编程语言,广泛应用于Web开发中。它是Web页面上的脚本语言,也是Node.js生态系统的重要语言。JavaScript的核心特性包括:1. 动态类型弱类型语言:变量的类型在运行时确定,可以存储任何类型的数据,类型转换在运行时进行。......