假设你有以下代码:

import java.util.Map;

import java.util.concurrent.ConcurrentHashMap;

public class Test {

public static void main(String[] s) {

Map whoLetDogsOut = new ConcurrentHashMap<>();

whoLetDogsOut.computeIfAbsent("snoop", k -> f(k));

whoLetDogsOut.computeIfAbsent("snoop", k -> f(k));

}

static boolean f(String s) {

System.out.println("creating a value for \""+s+'"');

return s.isEmpty();

}

}

然后,您将看到消息在“第二次调用computeIfAbsent”时直接创建一个“snoop”值,该密钥已经是该密钥的值. λ表达式中的k – > f(k)只是地图将传递给您的lambda计算该值的密钥的placeolder(参数).所以在这个例子中,键被传递给函数调用.

或者你可以写:whoLetDogsOut.computeIfAbsent(“snoop”,k – > k.isEmpty());在没有帮助方法的情况下实现相同的结果(但是您将看不到调试输出).甚至更简单,因为它是对现有方法的简单委派,您可以编写:whoLetDogsOut.computeIfAbsent(“snoop”,String :: isEmpty);该委托不需要任何参数的编写.

为了更接近你的问题的例子,你可以把它写成whoLetDogsOut.computeIfAbsent(“snoop”,key – > tryToLetOut(key)); (无论你是命名参数k还是键).或者写为whoLetDogsOut.computeIfAbsent(“snoop”,MyClass :: tryToLetOut);如果tryToLetOut是static或whoLetDogsOut.computeIfAbsent(“snoop”,this :: tryToLetOut);如果tryToLetOut是一个实例方法.

java if函数的使用方法_java – 如何使用新的computeIfAbsent函数?相关推荐

  1. java如何用c 的方法_JAVA如何调用C/C++方法

    JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能.解决JAVA对本地操作的一种方法就是JNI. JAVA通过JNI调用本地方法, ...

  2. java单元测试异步不进去方法_java单元测试之如何实现异步接口的测试案例

    测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4.因为单元测试能够在软件模块组合之前尽快发现问题,所 ...

  3. java中容易混淆的方法_java中容易混淆的概念

    java中容易混淆的概念 1. 谈谈 final, finally, finalize 的区别final-修饰符(关键字)如果一个类被声明为 final,意味着它不能再派生出新的子类,不 能作为父类被 ...

  4. java 创建文件夹的方法_Java创建文件夹的方法

    Java创建文件夹的方法 /** * 用于创建文件夹的方法 * @param mkdirName */ public void mkdir(String mkdirName) { try { File ...

  5. java私有属性和私有方法_Java接口–历年来Java 9之旅–默认方法和私有方法

    java私有属性和私有方法 介绍 Java接口已经比Java版本进行了更多的演变,而Java 8和Java 9则有所发展.在本文中,我们将介绍接口在Java 8之前的样子以及如何在Java 8和Jav ...

  6. java私有属性和私有方法_Java 9中什么是私有的?

    java私有属性和私有方法 在进行面试时,我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么. 他们对此有所了解,足以应付日常编码,但还远远不够. 这不成问题. 足够了解就足够了 ...

  7. java私有属性和私有方法_Java私有,受保护,公共和默认

    java私有属性和私有方法 您是Java程序员,所以您知道我在说什么. public修饰符使方法或字段可从应用程序中的任何位置访问. 那是简单的部分. 但是,您能告诉我protected和包私有的区别 ...

  8. java中容易混淆的方法_java中容易混淆的区别

    本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...

  9. java调用接口实现的方法_java调用接口的实现方法

    java调用接口的实现方法 发布时间:2020-06-29 11:08:46 来源:亿速云 阅读:78 作者:Leah 本篇文章给大家分享的是有关java调用接口的实现方法,小编觉得挺实用的,因此分享 ...

最新文章

  1. Leetcode 391.完美矩形
  2. static和global的区别
  3. 【 Vivado 】Performing System-Level Design Entry(总览)
  4. P2278-[HNOI2003]操作系统【堆】
  5. 几道web前端练习题目
  6. 什么是Azure Data Lake
  7. Project Euler Problem 48: Self powers
  8. python 中 enumerate() 函数使用
  9. 爬虫--Scrapy-CrawlSpider基于CrawlSpide的分布式爬虫
  10. 在线合成车牌照片【模拟车牌,用于车牌识别项目测试】
  11. unity webgl获取页面Token信息,及加载StreamingAssets下.txt
  12. redhat linux系统下查看Emulex HBA卡基本命令
  13. 《数据结构》邓俊辉 网课习题详细解析(第五章:二叉树)
  14. weblogic漏洞
  15. Victor ti99不错
  16. 【机器学习入门系列】第二章 探索性分析
  17. 计算机校招软件测试笔试题,校招软件测试笔试题
  18. 文件路径:反斜杆和正斜杠用法
  19. 第47章 表单验证之DataAnnotations与FluentValidation
  20. H264 raw stream获取nalu的长度信息

热门文章

  1. fastjson android 版本,fastjson 1.1.58.android 发布,Bug 修复版本
  2. 03:计算书费【一维数组】
  3. Python暴力破解凯撒加密的文本
  4. 几行代码理解Python变量访问的LEGB顺序
  5. DFS--01背包问题
  6. python css_Python-CSS整理
  7. python生成热度图_Python数据可视化 热力图
  8. 将js对象转化为树形结构
  9. 设置最小值_WELSIM中设置有限元计算结果的最大最小值
  10. sql unicode转中文_汉字转拼音的Java类库 JPinyin