java - 如何在 Java 8 中使用 reduce 从对象列表创建字符串列表?

标签 java

我有一个对象如下:

class Order {
  private String code;
  private String status;
  // Constructor, getters and setter and so on
}

我需要从满足条件的订单列表中创建一个代码列表。 我在 JavaScript 中实现了类似的东西,如下所示:

const codes = orders.reduce((codeList, order) => {
  if (order.status === 'NEW') return codeList.push(order.code)
  return codeList
}, [])

是否可以使用 Java 8 实现此目的?

最佳答案

在 Java 中,您应该使用 collect,而不是 reduce,用于此目的:

List<String> codes =
    orders.stream()
          .filter(o -> o.getStatus().equals("NEW"))
          .map(Order::getCode)
          .collect(Collectors.toList());

关于java - 如何在 Java 8 中使用 reduce 从对象列表创建字符串列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66255080/

相关文章:

java - 为什么在类中定义的变量不是局部变量而是java中的实例变量?

java - 基本 3D 碰撞检测问题

java - Ant 使用了错误的 java 版本

java - 在二维数组java上添加值

java - 来自 bouncycaSTLe RSAKeyParameters 的公钥

java - 通用对象的哈希函数

java - 使用 geoJSF map 不可见

java - 迭代器和抛出异常

java - 从 youtube channel 获取视频列表

java - 从 HttpURLConnection InputStream 获取不正确的输出