Java Streams - 更改元素的字段

标签 java arrays list java-8 java-stream

我已经在谷歌上搜索了一段时间,但找不到我想要的答案。

我有一个产品流,其中每个产品都包含以下字段:

private String ID;
private float price;
private int quantity;

我需要更改特定产品的数量字段,而不消耗流的其余部分。是否可以?

如何搜索此元素(按产品ID),然后更改数量字段的值?

我想我可以使用.peek(),但我不知道如何实现这一点。

最佳答案

假设您有数量的 setter 方法,则可以使用 peek 来更改该值。测试您想要的产品 ID,然后调用 setter,所有这些都在 lambda 表达式(Consumer)中进行。

stream.peek( p -> {
    if ("YourID".equals(p.getID()))
    {
         p.setQuantity(newQuantity);
    }
});

关于Java Streams - 更改元素的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31127174/

相关文章:

java - 如何从servlet中的http请求获取对象?

Ruby:从数组的开头就地删除元素并返回剩余的数组

C# 接口(interface)对象列表 - 类型转换单个元素

java - XML 未使用 XAS 解析器通过 XSD 进行验证

java - 在另一个 Maven 作业中运行 Maven 作业

java - 如何在调用@PostMapping 之前访问@RequestBody?

java - 如何从插入 SQL 数据库的 CSV 文件中删除双引号

arrays - 加载具有固定数据模式的数组

c++ - 递归函数返回列表中的段错误

python - 与 Python 中的字典列表关联