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

服装网站建设项目规划书禄丰县住房和城乡建设局网站

服装网站建设项目规划书,禄丰县住房和城乡建设局网站,南昌建设医院网站,微信小程序源码免费下载转载自 你还在Java8中使用循环语句吗#xff1f; Java 8中的新功能特性改变了游戏规则。对Java开发者来说这是一个全新的世界#xff0c;并且是时候去适应它了。 在这篇文章里#xff0c;我们将会去了解传统循环的一些替代方案。在Java 8的新功能特性中#xff0c;最棒…转载自   你还在Java8中使用循环语句吗 Java 8中的新功能特性改变了游戏规则。对Java开发者来说这是一个全新的世界并且是时候去适应它了。 在这篇文章里我们将会去了解传统循环的一些替代方案。在Java 8的新功能特性中最棒的特性就是允许我们去表达我们想要完成什么而不是要怎样做。这正是循环的不足之处。要确保循环的灵活性是需要付出代价的。return、break 或者 continue都会显著地改变循环的实际表现。这迫使我们不仅要清楚我们要实现怎样的代码还要了解循环是怎样工作的。 现在我们看看怎样把这些循环转换为更简洁可读性更高的代码。 代码转换 好吧讲的够多了是时候展示一些例子了 这次我们要以文章为例子。一篇文章拥有一个标题一个作者和几个标签。 private class Article {private final String title;private final String author;private final ListString tags;private Article(String title, String author, ListString tags) {this.title  title;this.author  author;this.tags  tags;}public String getTitle() {return title;}public String getAuthor() {return author;}public ListString getTags() {return tags;} } 每个例子都会包含一个使用传统循环的方案和一个使用Java 8新特性的方案。 在第一个例子里我们要在集合中查找包含“Java”标签的第一篇文章。 看一下使用for循环的解决方案。 public Article getFirstJavaArticle() {for (Article article : articles) {if (article.getTags().contains(Java)) {return article;}}return null; }现在我们使用Stream API的相关操作来解决这个问题。 public OptionalArticle getFirstJavaArticle() {   return articles.stream().filter(article - article.getTags().contains(Java)).findFirst(); } 是不是很酷我们首先使用 filter 操作去找到所有包含Java标签的文章然后使用 findFirst() 操作去获取第一次出现的文章。因为Stream是“延迟计算”lazy的并且filter返回一个流对象所以这个方法仅在找到第一个匹配元素时才会处理元素。 现在让我们获取所有匹配的元素而不是仅获取第一个。 首先使用for循环方案。 public ListArticle getAllJavaArticles() {ListArticle result  new ArrayList();for (Article article : articles) {if (article.getTags().contains(Java)) {result.add(article);}}return result; } 使用Stream操作的方案。 public ListArticle getAllJavaArticles() {  return articles.stream().filter(article - article.getTags().contains(Java)).collect(Collectors.toList());} } 在这个例子里我们使用 collection 操作在返回流上执行少量代码而不是手动声明一个集合并显式地添加匹配的文章到集合里。 到目前为止还不错。是时候举一些突出Stream API强大的例子了。 根据作者来把所有的文章分组。 照旧我们使用循环方案。 public MapString, ListArticle groupByAuthor() {MapString, ListArticle result  new HashMap();for (Article article : articles) {if (result.containsKey(article.getAuthor())) {result.get(article.getAuthor()).add(article);} else {ArrayListArticle articles  new ArrayList();articles.add(article);result.put(article.getAuthor(), articles);}}return result; } 我们能否找到一个使用流操作的简洁方案来解决这个问题 public MapString, ListArticle groupByAuthor() {  return articles.stream().collect(Collectors.groupingBy(Article::getAuthor)); } 很好使用 groupingBy 操作和 getAuthor 方法我们得到了更简洁、可读性更高的代码。 现在我们查找集合中所有不同的标签。 我们从使用循环的例子开始。 public SetString getDistinctTags() {SetString result  new HashSet();for (Article article : articles) {result.addAll(article.getTags());}return result; } 好我们来看看如何使用Stream操作来解决这个问题。 public SetString getDistinctTags() {  return articles.stream().flatMap(article - article.getTags().stream()).collect(Collectors.toSet()); } 棒极了flatmap 帮我把标签列表转为一个返回流然后我们使用 collect 创建了一个集合作为返回值。 以上的就是如何使用可读性更高的代码代替循环的例子。很高兴您能够用心读完希望对您有所帮助。
http://wiki.neutronadmin.com/news/63645/

相关文章:

  • 网站主机的类型徐州做网站哪里好
  • 新塘17网站一起做网店官网做舞台灯光的在哪些网站接订单呢
  • 网站制作 番禺wordpress seo什么意思
  • 从化免费网站建设郑州旅游网站设计
  • 湛江专业自助建站详细解读企业网站icp是什么
  • 十大网站在线观看域名解析到wordpress
  • 龙华网站建设推广外包猎头公司招聘信息
  • 宁波网站建设科技有限公司建站设计公司
  • 网页制作创建站点内容小程序源码网网盘
  • 我做网站可以赚钱吗公司建立网站流程图
  • 正版素材网站新闻最新热点
  • 做网站公司能赚钱吗彩票app开发制作多少钱
  • 做社交网站要注册哪类商标励志做的很好的网站
  • 游戏 网站 模板wordpress菜单栏设置
  • 网站开发遇到的问题车工订单网站
  • 网站建设多少钱宋柯yy大杂烩
  • 免费的微网站制作平台做网站用go语言还是php
  • 中国铁建网站分析无线传感网络的体系架构
  • 做外贸兼职的网站设计分销系统设计
  • 同一个空间可以做两个网站么湖南英文网站建设
  • 网站推广服务合同婚纱摄影类网站
  • 免费网站建设福州网站流量 钱
  • 关于建立网站的计划黑马程序员学费多少钱
  • 网站建设方式信誉最好的20个网投网站
  • 网站的三大标签想系统学习wordpress
  • 江苏苏州网站建设动态表单的设计与实现
  • 国外好的网站空间温州网站建设优化
  • 丰台网站开发公司保定网站建设方法
  • 中国营销传播网苏州seo外包
  • 外贸网站建设服务器wordpress全静态化