首页 / JAVA / 如何用Java 8流替换嵌套循环
如何用Java 8流替换嵌套循环
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何用Java 8流替换嵌套循环,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1499字,纯文字阅读大概需要3分钟。
内容图文
我想将Java 8流用于以下实现.基本上我想解析一个列表并形成另一个不同对象的列表.
输入 – 人物pojos列表,
输出 – PersonInfo pojos列表
List<Person> persons = new ArrayList<Person>();
Person max = new Person();
max.setName("Max");
max.setAge(10);
max.addAddress(new Address("Street1", "City1"));
max.addAddress(new Address("Street2", "City2"));
Person peter = new Person();
peter.setName("Peter");
peter.setAge(20);
peter.addAddress(new Address("Street1", "City1"));
peter.addAddress(new Address("Street2", "City2"));
persons.add(max);
persons.add(peter);
System.out.println("Input: " + persons);
List<PersonInfo> personInfos = new ArrayList<PersonInfo>();
PersonInfo personInfo = null;
for (Person person : persons) {
for (Address addr : person.getCurrAndPrevAddrs()) {
personInfo = new PersonInfo();
personInfo.setName(person.getName());
personInfo.setAge(person.getAge());
personInfo.setAddrs(addr);
personInfos.add(personInfo);
}
}
System.out.println("Output: " + personInfos.toString());
样本输出:
输入:[最大10 [Street1 City1,Street2 City2]
,Peter 20 [Street1 City1,Street2 City2]]
输出:[Max 10 Street1 City1
,Max 10 Street2 City2
,Peter 20 Street1 City1
,Peter 20 Street2 City2]
解决方法:
List<PersonInfo> personInfos = persons.stream().flatMap(person -> person.getCurrAndPrevAddrs().stream().map(addr -> {
PersonInfo personInfo = new PersonInfo();
personInfo.setName(person.getName());
personInfo.setAge(person.getAge());
personInfo.setAddrs(addr);
return personInfo;
})).collect(Collectors.toList());
内容总结
以上是互联网集市为您收集整理的如何用Java 8流替换嵌套循环全部内容,希望文章能够帮你解决如何用Java 8流替换嵌套循环所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。