Java 流来比较两个列表的元素并找到匹配项

问题描述 投票:0回答:0

Java新手。 我有两个列表 - 包含购物车中所有商品的客户列表和商品主列表。下面是两个对象的例子

顾客

[
{
    "customerId": 123,
    "cartItems": [
        {
            "itemId": "123-XYZ",
            "itemPrice": 200
        }, 
        {
            "itemId": "123-ABC",
            "itemPrice": 100
        }
    ]
},
{
    "customerId": 987,
    "cartItems": [
        {
            "itemId": "987-XYZ",
            "itemPrice": 200
        }
    ]
}
]

客户对象中的itemID包含客户ID和商品名称。

项目总清单

[
    {
        "itemName": "XYZ",
        "itemPrice": 200
    },
    {
        "itemName": "ABC",
        "itemPrice": 100
    }
]

我想比较这两个列表并找到拥有主列表中所有项目的客户。主列表是动态的,可能会不时更改。 我能够使用主列表中的两个项目使用简单的 for 循环来执行此操作。请建议是否可以使用流函数来正确解决此问题。

for(Customer customer: customers) {
    List<Item> items = customer.getItems();

    for(Item item: items) {
        if(item.getItemId().contains(masterListItems.getItemName()) & item.getItemPrice().equals(masterListItems.getItemPrice()) {
            System.out.println("Item found");
        }
    }
}
java loops filter foreach stream
© www.soinside.com 2019 - 2024. All rights reserved.