当前位置: 首页 > 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.pierceye.com/news/183792/

相关文章:

  • 八年级微机网站怎么做wordpress 链接转换
  • ppt做的模板下载网站有哪些内容wordpress 4.5.3中
  • 网站开发需求文档prd模板iis wordpress 404
  • 灰色链网站建设偃师建网站那家公司好
  • 文化网站前置审批网站运营系统
  • 现在做网站用什么学校网站的建设需求
  • 网页制作与网站建设技术大全 pdfhtml5移动端网站开发教程
  • 做任务可以给钱的网站php响应式网站模板下载
  • 平面素材设计网站东莞房价2023年最新房价走势
  • 做一个网站建设需要多少钱天津企业网站排名优化
  • 有关网站开发的论文网站建设哪公司
  • wordpress网站500导航 网站 分析
  • 软件网站开发市场前景试论述网上商城的推广技巧
  • 海洋生态文明建设的网站名廊坊网站建设电话
  • 做外贸在哪个网站比较好视频网站搭建源码
  • 网站代码优化视频教程动画制作专业大学排名
  • 安阳网站推广优化网站导航条背景图片
  • 静态网站需要数据库吗广州近期流行的传染病
  • 如何做国外的网站页面设计感想
  • 征婚网站认识的男人做定投保wordpress 中文 cms
  • 淄博百度网站建设上虞网站建设哪家好
  • 网站菜单导航怎么做的网站没有备案怎么做支付
  • wordpress主题小程序如何做优化排名
  • 中企动力做网站费用多个域名 指向同一个网站
  • 怎么搭建小程序平台网站营销优化
  • 建设网站员工招聘策划方案软件开发的八个步骤
  • 怎样做cms电影网站赚钱网络营销需要学什么
  • wordpress快速仿站视频教程没有备案的网站会怎么样
  • 美团先做网站还是app惠州惠阳网站建设
  • 可以更改上传到网站的文件内容吗信用 网站 建设方案