当前位置: 首页 > 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.zqtcl.cn/news/509155/

相关文章:

  • 比较权威的房产网站合肥瑶海区地图全图高清版
  • 网站建设公司果动小学电教检查网站建设资料
  • 电子商务网站设计成功的要素青岛网页设计师
  • 门户网站平台建设方案网站开发后如何上线
  • 濮阳做网站的番禺区网络推广渠道
  • 杭州网站seo外包外链图片
  • 苏州网站建设有限公司枣阳建网站
  • 网站开发平台选择如何制作购物网站
  • 专业建设网站企业外包公司企业网站
  • 网站开发需求确认书国家商标注册官网查询系统
  • 国内个人网站建设wordpress 添加搜索
  • 网站建设创新简述网站开发具体流程
  • wordpress小说网站模板南宁企业网站seo
  • 网站开发与设计课程时间网站推广的搜索引擎推广
  • 网站首页幻灯片不显示网页设计制作项目
  • 遂宁网站建设哪家好深圳做响应式网站设计
  • 慈溪建设企业网站wordpress 增加分类字段
  • 毕业设计做系统网站wordpress修改评论框
  • 上海网站开发孵化设计者联盟官网
  • 旅游网站开发需求报告微信创建小程序
  • 不收费推广网站有哪些h5网站要多久
  • seo网站营销推广全...互联网创业好项目
  • vx小程序制作网站优化标题怎么做
  • 做旅游网站课程设计报告湘潭学校网站建设 x磐石网络
  • 接网站 建设没有网站可以做seo排名吗
  • 抚顺网站seo建设网站需要支付什么插件费用吗
  • 东台做淘宝网站电子商务是学什么
  • 建一个购物网站多少钱wordpress托管在哪里
  • 怎么建设免费网站北京最大的火车站
  • 做视频网站被判刑豫建设标 网站