将循环转换为Java8

将循环转换为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())

我在Java7中有这个循环

   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());