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

建设网站东莞公司产品宣传片制作公司

建设网站东莞公司,产品宣传片制作公司,网络营销方案范文,昆明官渡区最新消息在本文中#xff0c;我们将研究Java 12的新功能“ Switch Expressions”#xff0c;以及如何与Java 12结合使用。 Stream::map操作和其他一些Stream操作。 了解如何使用流和开关表达式使代码更好。 切换表达式 Java 12附带了对“开关表达式”的“预览”支持。 Switch Expre… 在本文中我们将研究Java 12的新功能“ Switch Expressions”以及如何与Java 12结合使用。 Stream::map操作和其他一些Stream操作。 了解如何使用流和开关表达式使代码更好。 切换表达式 Java 12附带了对“开关表达式”的“预览”支持。 Switch Expression允许switch语句直接返回值如下所示 public String newSwitch( int day) { return switch (day) { case 2 , 3 , 4 , 5 , 6 - weekday ; case 7 , 1 - weekend ; default - invalid ; } category ; } 用1调用此方法将返回“周末类别”。 这很棒并使我们的代码更短更简洁。 我们不必费心去掉顾虑块易变的临时变量或遗漏的情况/默认情况这可能是良好的开关的情况。 只要看一下对应的旧开关示例您就会明白我的意思 public String oldSwitch( int day) { final String attr; switch (day) { case 2 , 3 , 4 , 5 , 6 : { attr weekday ; break ; } case 7 , 1 : { attr weekend ; break ; } default : { attr invalid ; } } return attr category ; } 开关表达式是预览功能 为了使Switch Expression在Java 12下工作我们必须通过 编译和运行应用程序时都将“--enable-preview”作为命令行参数。 事实证明这有些棘手但希望它会随着新IDE版本的发布和/或如果Java将此功能作为完全受支持的功能合并而变得更加容易。 IntelliJ用户需要使用版本2019.1或更高版本。 在Stream :: map中切换表达式 开关表达式在Stream::map运算符中非常易于使用尤其是与旧的开关语法相比时。 在以下示例中我使用了Speedment Stream ORM和Sakila示例数据库 。 Sakila数据库包含有关电影演员等的全部信息。 这是使用map()结合Switch Expression将电影语言ID short 解码为完整语言名称 String 的流 public static void main(String... argv) { try (Speedment app new SakilaApplicationBuilder() .withPassword( enter-your-db-password-here ) .build()) { FilmManager films app.getOrThrow(FilmManager. class ); ListString languages films.stream() .map(f - the switch (f.getLanguageId()) { case 1 - English ; case 2 - French ; case 3 - German ; default - Unknown ; } language ) .collect(toList()); System.out.println(languages); } } 这将在数​​据库中创建所有1000部电影的流然后将每部电影映射到相应的语言名称并将所有这些名称收集到一个列表中。 运行此示例将产生以下输出为简洁起见以下简称 [英语英语…] 如果我们将使用旧的switch语法则将获得如下所示的内容 ... ListString languages films.stream() .map(f - { final String language; switch (f.getLanguageId()) { case 1 : { language English ; break ; } case 2 : { language French ; break ; } case 3 : { language German ; break ; } default : { language Unknown ; } } return the language language ; }) .collect(toList()); ... 或者也许是这样的 ... ListString languages films.stream() .map(f - { switch (f.getLanguageId()) { case 1 : return the English language ; case 2 : return the French language ; case 3 : return the German language ; default : return the Unknown language ; } }) .collect(toList()); ... 后一个示例简短一些但是重复了逻辑。 在Stream :: mapToInt中切换表达式 在此示例中我们将基于电影的评分来计算有关分配分数的摘要统计信息。 根据我们自己的发明规模限制越严格得分越高 IntSummaryStatistics statistics films.stream() .mapToInt(f - switch (f.getRating().orElse( Unrated )) { case G , PG - 0 ; case PG-13 - 1 ; case R - 2 ; case NC-17 - 5 ; case Unrated - 10 ; default - 0 ; }) .summaryStatistics(); System.out.println(statistics); 这将产生以下输出 IntSummaryStatistics{count 1000 , sum 1663 , min 0 , average 1.663000 , max 5 } 在这种情况下“开关表达式”与旧开关之间的差异并不大。 使用旧的开关我们可以这样写 IntSummaryStatistics statistics films.stream() .mapToInt(f - { switch (f.getRating().orElse( Unrated )) { case G : case PG : return 0 ; case PG-13 : return 1 ; case R : return 2 ; case NC-17 : return 5 ; case Unrated : return 10 ; default : return 0 ; } }) .summaryStatistics(); 在Stream :: collect中切换表达式 最后一个示例显示了在收集器分组中使用switch表达式的情况。 在这种情况下我们要计算某个最低年龄的人可以看多少部电影。 在这里我们使用年龄最小的地图作为键将已计数的电影作为值。 MapInteger, Long ageMap films.stream() .collect( groupingBy( f - switch (f.getRating().orElse( Unrated )) { case G , PG - 0 ; case PG-13 - 13 ; case R - 17 ; case NC-17 - 18 ; case Unrated - 21 ; default - 0 ; }, TreeMap:: new , Collectors.counting() ) ); System.out.println(ageMap); 这将产生以下输出 { 0 372 , 13 223 , 17 195 , 18 210 } 通过提供可选 groupingBy地图供应商TreeMap::new 我们可以按年龄顺序排列年龄。 为什么从13岁起就可以看到PG-13而从17岁起就不能看到NC-17而是从18岁起就看不到NC-17但这不在本文的讨论范围之内。 摘要 我期待将Switch Expressions功能正式纳入Java。 开关表达式有时可以替换许多流操作类型的lambda和方法引用。 翻译自: https://www.javacodegeeks.com/2019/03/java-12-mapping-with-switch-expressions.html
http://www.pierceye.com/news/778501/

相关文章:

  • 后盾网原创实战网站建设教程北京app网站建设价格
  • 简述网站建设过程步骤wordpress英文建站
  • 网站开发 mvc有孩子做的网站
  • 自己做的网站如何推广wordpress 主题页脚
  • 数据库型网站怎么把电脑当服务器做网站
  • 东莞网站建设品牌公司如何做电子书网站
  • 免费学做美食视频网站有哪些百度是国企还是央企
  • wordpress 网站关键词设置wordpress 上传主机
  • h5电子商务网站如何查询关键词的搜索量
  • 网站导航栏兼容性网站建设的主要技术指什么软件
  • 如何抄袭网站400靓号手机网站建设
  • 大兴网站建设价格怎样建设好网站
  • 三维家是在网站上做还是在app上国内新闻最新5条
  • 呼伦贝尔网站设计wordpress如何关闭主题
  • 苏州网站制作网站建设淮安住房和城乡建设厅网站
  • 房产中介网站wordpress模板mip
  • 汽车租赁网站怎么做沈阳网站开发程序员工资
  • 网站建设教程搭建汽岁湖南岚鸿专注交城有做网站的吗
  • 网站开发怎么连接sqlserver建设网站怎么收费标准
  • 万网网站模板购买北京南站核酸检测地点
  • 南京城乡建设网站公司做网站哪个好
  • 有没有学做衣服的网站广告设计公司有什么岗位
  • 什么网站做免单衣服厦门设计师网站
  • 深圳网站建设 龙华信科易乐自助建站
  • 徐老师在那个网站做发视频搜索引擎优化特点
  • 工信部网站备案批准文件重庆装修网站建设
  • 网站被攻击了怎么办网站优化 价格查询
  • 北京网站建设公司怎么样怎么做qq盗号网站
  • 中企动力网站建设合同中天建设招标网站
  • 湖南手机版建站系统开发wordpress获取用户角色