贵州建设厅网站怎样查询电工证山西临汾建设局网站
贵州建设厅网站怎样查询电工证,山西临汾建设局网站,定制科技软件,个人业务网站带后台归约操作java81.简介 在上一篇文章中 #xff0c;我写了关于如何使用流和分组对对象集合进行分组的文章。 这很有用#xff0c;但不涵盖特定的用例。 例如#xff0c;有时我们不仅需要对事物进行分组#xff0c;还需要将结果转换为更合适的对象。 在这篇文章中#xff0c… 归约操作java8 1.简介 在上一篇文章中 我写了关于如何使用流和分组对对象集合进行分组的文章。 这很有用但不涵盖特定的用例。 例如有时我们不仅需要对事物进行分组还需要将结果转换为更合适的对象。 在这篇文章中我们将学习如何将变换和归约应用于groupingBy结果。 在这里您可以查看以下示例的源代码。 2.分组并变换 让我们在上一篇文章中我们不得不集合所使用的模型我的人谁拥有的宠物 。 现在我们想知道哪些宠物属于居住在纽约的人。 我们要养宠物所以我们不能只是分组因为我们将要归还一群人。 我们需要做的是按城市分组人员然后将流转换为宠物集合。 为此我们在组的结果上使用以下映射 public void groupAndTransform(ListPerson persons) {final MapString, ListPet petsGroupedByCity persons.stream().collect(groupingBy(Person::getCity,mapping(Person::getPet, toList())));System.out.println(Pets living in New York: petsGroupedByCity.get(NYC));
} 在分组阶段我们按城市对人员进行分组然后执行映射以获取每个人的宠物。 3.分组转换和归约 前面的示例对于转换对象分组很有用但是也许我们不想获取每个组的整个列表。 在此示例中我们仍希望按所有者所在的城市对宠物进行分组但是这次我们只想获取每个列表中最老的宠物。 来自Collectors的 collectionAndThen方法允许我们对分组结果进行最终转换 public void groupTransformAndReduce(ListPerson persons) {final MapString, Pet olderPetOfEachCity persons.stream().collect(groupingBy(Person::getCity,collectOlderPet()));System.out.println(The older pet living in New York is: olderPetOfEachCity.get(NYC));
}private CollectorPerson, ?, Pet collectOlderPet() {return collectingAndThen(mapping(Person::getPet,Collectors.maxBy((pet1, pet2) - Integer.compare(pet1.getAge(), pet2.getAge()))), Optional::get);} 在按城市对人员进行分组之后在收集并随后将每个城市的列表中的每个人都转换为宠物然后应用减法来获得列表中年龄最大的宠物。 4。结论 Collectors API不仅允许我们对事物的集合进行分组而且还可以根据需要进行转换和简化以获得不同的对象。 翻译自: https://www.javacodegeeks.com/2016/03/grouping-transforming-reduction-java-8.html归约操作java8
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91609.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!