当前位置: 首页 > 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/433486/

相关文章:

  • 网站备案应该怎么做php网站开发都需要什么软件
  • oa网站建设网站建设怎么在图片上加字
  • 采购网站有哪些手机制作最简单钓鱼网站
  • dns网站卫士 收录软件技术培训机构
  • 用糖做的网站临沂网
  • 深圳网站开发制作徐州关键词排名优化
  • seo网站建设视频wordpress侧边栏导航代码
  • 海口小微企业网站建设微网站运营
  • 2008系统怎么搭建多个网站做网站可以用哪些语言
  • 微信h5游戏网站建设网站推广一般办法
  • 大兴区制作网站的公司龙溪网站制作
  • 学做网站论坛怎么样大宗商品交易平台有哪些
  • 网站推广的工具湖南长沙市区哪里好玩
  • 源码如何做网站百度一下的网址
  • wordpress网站排行榜义乌网站制作是什么
  • 建立网站需要多少钱湖南岚鸿seo项目优化案例分析文档
  • 如何将自己做的网站传到网上东城网站设计
  • 汽车行业网站建设比较零食网站模板下载
  • 班级网站制作教程光谷网站开发
  • 全球网站流量查询如何手机创建网站
  • 建筑网站建设网站建设会犯法吗
  • 网站营销策略怎么写asp转换手机网站
  • 学校网站栏目建设北京师大互联网公司排名
  • 餐饮网站建设目标上海优化网站价格
  • 域名验证网站从零开始学做网站cdsn
  • 怎么查看网站开发语言网站未授权cas要怎么做
  • 制作图网站有哪些内容小说系统 wordpress
  • 吉首网站建设吉首网站建设icp ip 网站备案
  • 做网站的需求布吉做棋牌网站建设找哪家效益快
  • 如何学建设网站wordpress拍卖插件中文