Java Streams - 更改元素的字段
Java Streams - Change field of an element
我用谷歌搜索了一段时间,但找不到我要找的答案。
我有一个 产品流 ,每个产品都包含以下字段:
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);
}
});
我用谷歌搜索了一段时间,但找不到我要找的答案。
我有一个 产品流 ,每个产品都包含以下字段:
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);
}
});