是否可以像这样转换代码
for (Contacto contact : contactos) {
fix.printf("%s\t%s\t%s\n",
contact.getName(), contact.getNumb(), contact.getDateOfBirth());
}
进入java流?
答案 0 :(得分:2)
当然可以 - 下面应该使用Stream
的{{3}}方法:
contactos.stream()
.forEach(c -> fix.printf("%s\t%s\t%s\n", c.getName(), c.getNumb(), c.getDoB()));
请记住这可能会影响可读性 - 我认识的大多数人会说循环比这更容易阅读。
另外请记住,为此,您应该使用forEach
代替forEach
- forEach
并不保证处理项目的顺序,以及对于并行流而言这很重要。 forEachOrdered
保证逐项处理项目。
您可以省略对Stream
的调用,具体取决于您的容器 - 如果它实现了forEachOrdered
(大多数标准容器都这样做),那么您应该使用Iterable
而不是流(所以contactos.forEach(...)
。它更整洁,避免了创建Stream
的开销。
您还可以避免上面的forEachOrdered
问题,因为这些项目按迭代顺序处理""。