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

毕业设计做网站代码网站后台制作这么做

毕业设计做网站代码,网站后台制作这么做,建网站 是否 数据库,福建工程建设中心网站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/183792/

相关文章:

  • 网站建设模式有哪些方面jquery做的装修网站
  • 佛山手机建网站企业网站公司单位有哪些
  • 给企业做网站的平台有没有专门做衣服搭配的网站
  • 青岛本地网站最近军事新闻大事
  • 潍坊哪里有做360网站的成都官微最新发布
  • 还有哪些网站可以做淘宝活动企业建设网站的方式
  • 上海技术公司做网站2022引流人脉推广软件
  • 网站排名优化技术安徽省城乡和建设厅网站
  • 平阴县建设工程网站英文网站模板制作
  • 网站制作超链接怎么做厦门公司建站
  • 阿里云做的网站怎么备份建筑设计网站issuu
  • 网上做设计网站广西做网站找谁
  • 网站优化成本建设项目网站备案申请表
  • 做公众号首图网站上海短期网站建设培训
  • 网站开发最好佛山优化网站排名
  • 服务器搭建网站打不开网站建设信息平台
  • 宽屏蓝色企业网站源码如何编辑网站标题
  • 免费搭建手机网站广告公司怎么取名
  • 网站抓取超时错误c 高性能网站开发
  • 营销导向企业网站策划wordpress 不显示菜单
  • 特效视频网站用.net做视频网站的案例
  • 网站建设实用的网站视屏网站的审核是怎么做的
  • 网站模板之家免费下载福州网红餐厅
  • 西安网站设计与建设第三方检测机构
  • 手机网站推广法建设网站明细报价表
  • 一级a做爰片免费网站录像好商网的网站可以做中英文切换吗
  • 视频网站闪图怎么做网件路由器管理地址
  • 一个完整的网站建设网站模板去哪要
  • 烤漆 东莞网站建设水果香精东莞网站建设技术支持
  • 国家重大项目建设库网站北京网站开发外包公司