将循环转换为Java8
我在Java7中有这个循环将循环转换为Java8,java,Java,我在Java7中有这个循环 List<String> childrenNames = Lists.newArrayList(); for (TreeItem child : children) { childrenNames.add(child.toString()); } List childrenNames=Lists.newArrayList(); for(TreeItem child:children){ 添加(child.toString())
List<String> childrenNames = Lists.newArrayList();
for (TreeItem child : children) {
childrenNames.add(child.toString());
}
List childrenNames=Lists.newArrayList();
for(TreeItem child:children){
添加(child.toString());
}
如何用Java8编写它?您可以使用forEach循环
children.forEach(child->childrenNames.add(child.toString());
从输入集合创建流
,使用map
将其转换为流
,并将集合
转换为列表
List<String> childrenNames = children.stream()
.map(TreeItem::toString)
.collect(Collectors.toList());
List childrenNames=children.stream()
.map(TreeItem::toString)
.collect(Collectors.toList());
列出childrenNames=children.stream().map(TreeItem::toString.collect(Collectors.toList());
我希望这就是您所寻找的。什么类型是
children
?循环按原样在Java 8中运行良好,无需修改。请在询问之前搜索更多。看看这是否适用于您:结果、可变性、序列化性或线程安全性没有保证
List<String> childrenNames = children.stream().map(TreeItem::toString).collect(Collectors.toList());