我已经在谷歌上搜索了一段时间,但找不到我想要的答案。
我有一个产品流,其中每个产品都包含以下字段:
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/