【问题标题】:Java stream - How to go over a list, show elments and collect them in the same lineJava 流 - 如何遍历列表、显示元素并将它们收集在同一行中
【发布时间】:2026-02-11 21:20:10
【问题描述】:

我有以下几点:

Map<String, String> carMap;
List<Car> cars = ......

carMap = cars.stream
.collect(Collectors.toMap(key -> key.getValue(), key -> key.getColor()));

我正在迭代汽车,我想在屏幕上显示地图中包含的内容。收集地图后我可以做这样的事情,但我不想再次浏览列表:

cars.stream()
      .forEach(System.out::println)

有没有办法在这一行做一个系统输出?

carMap = cars.stream
.collect(Collectors.toMap(key -> key.getValue(), key -> key.getColor()));

我尝试了 forEach 后流,但显然没有用

【问题讨论】:

  • 您既想存储又想打印?

标签: java java-8 collect


【解决方案1】:

如果只是为了调试目的,你想收集和打印,你可以在这里简单地使用peek -

Map<String, String> carMap = cars.stream()
    .peek(c -> System.out.println("Value: " + c.getValue() + " and Color: " + c.getColor()))
    .collect(Collectors.toMap(key -> key.getValue(), key -> key.getColor()));

【讨论】:

  • 非常感谢,我也尝试了 map 并且它有效,但是 peek 更方便,因为我们不想替换元素
最近更新 更多