利用 java 8 引入的 stream api,可通过 stream().map() 链式调用将对象集合快速转换为指定属性的字符串(或其他类型)列表,替代传统 for 循环,代码更简洁、可读性更强。
在 Java 中,map 并非独立函数,而是 Stream
✅ 正确写法(简洁、安全、符合函数式风格):
var allObjectNames = allObjects.stream()
.map(o -> o.name) // 假设 Object 类有 public String name 字段
.collect(Collectors.toList());⚠️ 注意事项:
.collect(Collectors.toCollection(ArrayList::new));
? 补充示例(基于你提供的 Minimalistic Example):
// 更健壮的写法(含空值防护 + 使用 getter)
var outputNames = rootOutput.stream()
.filter(Objects::nonNull)
.map(Output::getOutputName) // 推荐:定义 public String getOutputName() { return outputName; }
.filter(Objects::nonNull)
.collect(Collectors.toCollection(ArrayList::new));总结:stream().map().collect() 是现代 Java 中替代手动遍历赋值的标准范式,兼具表达力与性能(支持惰性求值和并行化扩展)。掌握它,是写出清晰、可维护集合处理逻辑的关键一步。