当前位置: 首页 > news >正文

数据库作业代做网站svg图片做网站背景

数据库作业代做网站,svg图片做网站背景,企业网站趋势,网络营销的常用方法有哪些jdk8 接口默认方法Map接口在JDK 8中提供了一些方便的新方法 。 因为我在本文中介绍的Map方法是作为默认方法实现的#xff0c;所以Map接口的所有现有实现都享有在默认方法中定义的默认行为#xff0c;而无需任何新代码。 本文中介绍的JDK 8引入的Map方法是getOrDefault#… jdk8 接口默认方法 Map接口在JDK 8中提供了一些方便的新方法 。 因为我在本文中介绍的Map方法是作为默认方法实现的所以Map接口的所有现有实现都享有在默认方法中定义的默认行为而无需任何新代码。 本文中介绍的JDK 8引入的Map方法是getOrDefaultObjectV putIfAbsentKV removeObjectObject removeObjectObject replaceKV和replaceK VV 。 演示示例图 在本博文的所有示例中我将使用以下代码中所示的声明和初始化Map 。 statesAndCapitals字段是类级别的静态字段。 我特意只包含了美国五十个州中的一小部分以使阅读更清晰并使某些新的JDK 8 Map默认方法的演示更加容易。 private final static Map statesAndCapitals;static{statesAndCapitals new HashMap();statesAndCapitals.put(Alaska, Anchorage);statesAndCapitals.put(California, Sacramento);statesAndCapitals.put(Colorado, Denver);statesAndCapitals.put(Florida, Tallahassee);statesAndCapitals.put(Nevada, Las Vegas);statesAndCapitals.put(New Mexico, Sante Fe);statesAndCapitals.put(Utah, Salt Lake City);statesAndCapitals.put(Wyoming, Cheyenne);}Map.getOrDefaultObjectV Map的新方法getOrDefaultObjectV允许调用者在单个语句中指定以获取与提供的键对应的映射值或者如果找不到与提供的键匹配的内容则返回提供的“默认值”键。 下一个代码清单比较了如何在JDK 8之前实现与映射中提供的键相匹配的值的检查或是否使用默认值如果未找到匹配项以及如何在JDK 8中实现它。 /** Demonstrate Map.getOrDefault and compare to pre-JDK 8 approach. The JDK 8* addition of Map.getOrDefault requires fewer lines of code than the* traditional approach and allows the returned value to be assigned to a* final variable.*/// pre-JDK 8 approach String capitalGeorgia statesAndCapitals.get(Georgia); if (capitalGeorgia null) {capitalGeorgia Unknown; }// JDK 8 approach final String capitalWisconsin statesAndCapitals.getOrDefault(Wisconsin, Unknown); Apache Commons类DefaultedMap提供的功能类似于新的Map.getOrDefault(Object, V)方法。 Groovy GDK包括一个与Groovy类似的方法Map.getObjectObject 但是它的行为有些不同因为如果找不到“ key”它不仅返回提供的默认值而且还使用基础地图的默认值。 Map.putIfAbsentKV Map的新方法putIfAbsentKV的 Javadoc公布了等效的默认实现 The default implementation is equivalent to, for this map:V v map.get(key);if (v null)v map.put(key, value);return v; 另一个代码示例对此进行了说明该示例将JDK 8之前的方法与JDK 8的方法进行了比较。 /** Demonstrate Map.putIfAbsent and compare to pre-JDK 8 approach. The JDK 8* addition of Map.putIfAbsent requires fewer lines of code than the* traditional approach and allows the returned value to be assigned to a* final variable.*/// pre-JDK 8 approach String capitalMississippi statesAndCapitals.get(Mississippi); if (capitalMississippi null) {capitalMississippi statesAndCapitals.put(Mississippi, Jackson); }// JDK 8 approach final String capitalNewYork statesAndCapitals.putIfAbsent(New York, Albany); 在StackOverflow线程Java map.getkey中讨论了在添加putIfAbsent方法之前在Java空间中的替代解决方案–自动执行putkey并在key不存在时返回 。 值得注意的是在JDK 8之前 ConcurrentMap接口扩展Map 已经提供了putIfAbsentKV方法。 Map.removeObjectObject Map的新删除对象对象方法超出了长可Map.remove对象方法来删除一个映射条目仅当所提供的密钥并提供价值相匹配的地图一个条目以前使用的版本只寻找要删除的“关键”匹配项。 此方法的Javadoc注释根据等效的JDK 8之前的Java代码说明了默认方法的实现方式 此映射的默认实现等效于 if (map.containsKey(key) Objects.equals(map.get(key), value)) {map.remove(key);return true;} elsereturn false; 下一个代码清单中显示了新方法与JDK 8之前方法的具体比较。 /** Demonstrate Map.remove(Object, Object) and compare to pre-JDK 8 approach.* The JDK 8 addition of Map.remove(Object, Object) requires fewer lines of* code than the traditional approach and allows the returned value to be* assigned to a final variable.*/// pre-JDK 8 approach boolean removed false; if ( statesAndCapitals.containsKey(New Mexico) Objects.equals(statesAndCapitals.get(New Mexico), Sante Fe)) {statesAndCapitals.remove(New Mexico, Sante Fe);removed true; }// JDK 8 approach final boolean removedJdk8 statesAndCapitals.remove(California, Sacramento);Map.replaceKV 两个新的Map “替换”方法中的第一个方法仅在指定键已经存在且具有某些映射值的情况下才将指定值设置为映射到指定键。 Javadoc注释说明了此默认方法实现的Java等效项 此映射的默认实现等效于 if (map.containsKey(key)) {return map.put(key, value);} elsereturn null; 接下来显示此新方法与JDK 8之前的方法的比较。 /** Demonstrate Map.replace(K, V) and compare to pre-JDK 8 approach. The JDK 8* addition of replace(K, V) requires fewer lines of code than the traditional* approach and allows the returned value to be assigned to a final * variable.*/// pre-JDK 8 approach String replacedCapitalCity; if (statesAndCapitals.containsKey(Alaska)) {replacedCapitalCity statesAndCapitals.put(Alaska, Juneau); }// JDK 8 approach final String replacedJdk8City statesAndCapitals.replace(Alaska, Juneau);Map.replaceKVV 第二个新添加的Map “替换”方法在解释哪些现有值被替换时更窄。 尽管刚刚介绍的方法将替换映射中可用于指定键的值中的任何值但是这种接受附加 第三个 参数的“替换”方法将仅替换同时具有匹配键和键的已映射条目的值。匹配值。 Javadoc注释显示了默认方法的实现 The default implementation is equivalent to, for this map:if (map.containsKey(key) Objects.equals(map.get(key), value)) {map.put(key, newValue);return true;} elsereturn false; 下一个代码清单显示了我对该方法与JDK 8之前的方法的比较。 /** Demonstrate Map.replace(K, V, V) and compare to pre-JDK 8 approach. The* JDK 8 addition of replace(K, V, V) requires fewer lines of code than the* traditional approach and allows the returned value to be assigned to a* final variable.*/// pre-JDK 8 approach boolean replaced false; if ( statesAndCapitals.containsKey(Nevada) Objects.equals(statesAndCapitals.get(Nevada), Las Vegas)) {statesAndCapitals.put(Nevada, Carson City);replaced true; }// JDK 8 approach final boolean replacedJdk8 statesAndCapitals.replace(Nevada, Las Vegas, Carson City);观察与结论 从这篇文章中可以得出一些结论。 这些新的JDK 8 Map方法的Javadoc方法非常有用特别是在描述新方法如何按照JDK 8之前的代码表现时。 我在有关基于JDK 8 Javadoc的API文档的更一般性讨论中讨论了这些方法的Javadoc。 正如这些方法的Javadoc注释中的等效Java代码所指示的那样这些新方法通常在访问映射键和值之前不检查null。 因此使用Javadoc注释中所示的“等效”代码时使用这些方法可能会遇到与null相同的问题。 实际上Javadoc注释通常会警告NullPointerException的可能性以及与某些Map实现允许null以及某些键和值不允许的问题有关的问题。 本文中讨论的新Map方法是“默认方法”这意味着Map实现会自动“继承”这些实现。 本文中讨论的新Map方法允许使用更简洁的代码。 在我的大多数示例中它们允许将客户端代码从多个影响状态的语句转换为可以一次性设置局部变量的单个语句。 这篇文章中介绍的新Map方法不是突破性的或破天荒的但它们为许多Java开发人员以前实现了更多详细代码为其编写了自己的相似方法或为第三方库提供了便利。 JDK 8将这些标准化方法带给了Java大众而无需自定义实现或第三方框架。 因为默认方法是实现机制所以即使已经存在了很长时间的Map实现也突然并自动访问了这些新方法而无需对实现进行任何代码更改。 翻译自: https://www.javacodegeeks.com/2014/04/handy-new-map-default-methods-in-jdk-8.htmljdk8 接口默认方法
http://www.zqtcl.cn/news/647128/

相关文章:

  • 音乐播放网站开发pc端营销网站的关键字
  • 江门网站推广宿州官方网站建设
  • 企业网站建设策划书范文江苏高端网站建设
  • 网站开发 浏览器济宁网站建设服务
  • 整套网站建设网站开发中如何实现gps定位
  • 网站建设计划表福州自助建站
  • 网站做的比较好的公司吗2017年做网站多少钱
  • 基础展示营销型型网站重庆百度总代理
  • 网站建设 技术可行性这是我自己做的网站
  • 西安网站策划关键词优化哪家好
  • 能看建设动漫黄图的网站海外仓一件代发平台
  • 做网站都需要了解什么大连福佳新城2026年建站吗
  • php 网站部署到服务器泉州模板建站哪家好
  • 网站服务器上的跳转选择怎么做网站是怎么建立的
  • 网站后台目录如何保护公司网站建设需要要求什么软件
  • 四川省建设厅网站官网自己做的网站能上传到凡科吗
  • 米拓网站建设-app定制开发免费个人建站系统
  • 网站改版公司如何帮公司做网站
  • 曹县汽车网站建设网站怎么做才 吸引人
  • 河南周口东宇网站建设wordpress怎么重新安装插件
  • wordpress无法上传主题南通做网站优化公司
  • 做彩票网站能挣到钱吗南充市房产信息网
  • 沧州北京网站建设金华网站建设哪个公司好点
  • 北京朝阳建站优化wordpress主题访问慢
  • wordpress最快仿站酷炫个人特别网站
  • 公司建站详细步骤如何注册一家公司要多少钱
  • 网站推广网络营销山西大学物理电子工程学院研招网
  • 亚马逊做国际外贸在哪个网站毕业设计网站开发选题依据
  • 镇江网站排名优化费用app软件开发平台游戏
  • 襄阳网站建设xytzg南通网站建设top