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

国外有名的设计网站温州首页网络科技有限公司

国外有名的设计网站,温州首页网络科技有限公司,深圳市交易中心官网,重庆网站建设软件1.简介 使用Java 8流#xff0c;可以很容易地根据不同的标准对对象集合进行分组。 在这篇文章中#xff0c;我们将看到如何从简单的单级分组到更复杂的#xff0c;涉及多个级分组的分组。 我们将使用两个类来表示我们要分组的对象#xff1a;人和宠物。 人类 public cla… 1.简介 使用Java 8流可以很容易地根据不同的标准对对象集合进行分组。 在这篇文章中我们将看到如何从简单的单级分组到更复杂的涉及多个级分组的分组。 我们将使用两个类来表示我们要分组的对象人和宠物。 人类 public class Person {private final String name;private final String country;private final String city;private final Pet pet;public Person(String name, String country, String city, Pet pet) {this.name name;this.country country;this.city city;this.pet pet;}public String getName() {return name;}public String getCountry() {return country;}public String getCity() {return city;}public Pet getPet() {return pet;}Overridepublic String toString() {return Person{ name name \ , country country \ , city city \ };} } 宠物课 public class Pet {private final String name;private final int age;public Pet(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public int getAge() {return age;}Overridepublic String toString() {return Pet{ name name \ , age age };} } 在主要方法中我们创建将在以下各节中使用的集合。 public static void main(String[] args) {Person person1 new Person(John, USA, NYC, new Pet(Max, 5));Person person2 new Person(Steve, UK, London, new Pet(Lucy, 8));Person person3 new Person(Anna, USA, NYC, new Pet(Buddy, 12));Person person4 new Person(Mike, USA, Chicago, new Pet(Duke, 10));ListPerson persons Arrays.asList(person1, person2, person3, person4); 您可以在此处查看源代码。 2.单层分组 最简单的分组形式是单级分组。 在此示例中我们将按其国家/地区对集合中的所有人员进行分组 public void singleLevelGrouping(ListPerson persons) {final MapString, ListPerson personsByCountry persons.stream().collect(groupingBy(Person::getCountry));System.out.println(Persons in USA: personsByCountry.get(USA)); } 如果我们查看地图就会看到每个国家如何包含其公民列表 结果显示居住在指定国家/地区的人 Persons in USA: [Person{nameJohn, countryUSA, cityNew York}, Person{nameAnna, countryUSA, cityNew York}, Person{nameMike, countryUSA, cityChicago}]3.两级分组 在此示例中我们将不仅按国家/地区分组还按城市分组。 为此我们需要实现两级分组。 我们将按国家对人员进行分组对于每个国家我们将按其居住城市对人员进行分组。 为了允许多级分组类Collectors中的groupingBy方法支持附加的Collector作为第二个参数 public static T, K, A, DCollectorT, ?, MapK, D groupingBy(Function? super T, ? extends K classifier,Collector? super T, A, D downstream) 让我们使用此方法来实现我们的两级分组 public void twoLevelGrouping(ListPerson persons) {final MapString, MapString, ListPerson personsByCountryAndCity persons.stream().collect(groupingBy(Person::getCountry,groupingBy(Person::getCity)));System.out.println(Persons living in London: personsByCountryAndCity.get(UK).get(London).size()); } 如果我们调试执行我们将看到人员的分布情况 4.三级分组 在最后一个示例中我们将更进一步并按国家/地区城市和宠物的名字对人进行分组。 为了便于阅读我将其分为两种方法 public void threeLevelGrouping(ListPerson persons) {final MapString, MapString, MapString, ListPerson personsByCountryCityAndPetName persons.stream().collect(groupingBy(Person::getCountry,groupByCityAndPetName()));System.out.println(Persons whose pet is named Max and live in NY: personsByCountryCityAndPetName.get(USA).get(NYC).get(Max).size()); }private CollectorPerson, ?, MapString, MapString, ListPerson groupByCityAndPetName() {return groupingBy(Person::getCity, groupingBy(p - p.getPet().getName())); } 现在我们有了三个嵌套的地图其中包含每个人员列表 5.结论 Java 8 Collectors API为我们提供了一种对集合进行分组的简便方法。 通过嵌套收集器我们可以添加不同的组层以实现多级分组。 翻译自: https://www.javacodegeeks.com/2016/03/multi-level-grouping-streams.html
http://www.pierceye.com/news/509155/

相关文章:

  • 枣阳网站建设 枣阳山水数码自己建网站备案
  • 网站网站制作多少钱共享看世界新域名
  • 网站空间 阿里云wordpress多站点403
  • 下载网站备案的核验单免费ppt模板下载红色
  • discuz 网站备案信息代码温州网站建设优化公司
  • 外国人做汉字网站微网站开发手机模拟器
  • dede做网站网站群 优点
  • 网站制作多久能完成客户管理软件公司
  • 做网站最好的引流推广方法软件
  • 烟台网站建设4038gzs成都建设网上商城平台公司
  • 网站建设费在会计上怎么入账做学校网站的目的
  • 常德网站建设设计下载百度安装
  • 站长平台有哪些广东东远建设工程管理有限公司网站
  • 做蓝牙app的网站跨境电商是不是坑
  • 电子商务网站开发 刘兰娟企业网站建设发展平台
  • 天津做网站得公司游戏界面设计网站
  • 手机网站制作推广网站开发制作培训学校
  • 网站建设需要哪些成本自媒体怎么赚钱
  • 手机怎么访问微网站网站建设市场调研框架
  • 前端网站主题怎么做业务外包的优势和劣势
  • 西安模板网站建设套餐保定seo排名外包
  • 自己做的网站怎么设置文件下载北京朝阳区楼盘
  • h网站建设揭阳网站如何制作
  • phpstudy建设网站教程微信小程序开发需要什么
  • 快手刷评论推广网站网站几个数据库
  • 山东网站建设网站我国网站开发
  • 常见的网站类型有北京电力建设公司待遇
  • 网站分析流程wordpress表单统计插件下载
  • 南宁网站建设公司seo优化武鸣住房和城乡规划建设局网站
  • 在线制作网站门户站模板