如何比较两个列表并使用新对象创建新列表

brgchamk  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(355)

我有两份清单:
1列表包含数据库中的所有客户,第二个列表仅包含数据库中的部分客户:

List<Customers> allCustomers = findAll();

List<Customers> inUseCustomers = findAllCustomersInUse();

我有另一个对象调用:customerdto

public class CustomerDto {

    private Customer _customer;
    private boolean _inUse;

    public CustomerDto(Customer customer, boolean inUse) {
        this._customer = customer;
        this._inUse = inUse;
    }
}

我想创建一个新的CustomerTo列表,其中包含所有客户,但对于正在使用的客户,其字段“inuse”将为true,其余字段将为false。
我怎样才能以一种干净的方式使用stream呢?

jtw3ybtb

jtw3ybtb1#

伙计,我相信你可以做这样的事情,如果我知道你想做什么以及你的代码是如何工作的:

List<CustomerDto> customerDtoList = new ArrayList<>();

for(Customer customer : allCustomers) {
    CustomerDto customerDto = new CustomerDto(customer, customer.isInUse());
    customerDtoList.add(customerDto);
}

在这里,您只需示例化一个新的customerdto对象,其中包含allcustomers列表中的customer及其变量“inuse”的值。然后,将此对象添加到列表对象中。
我不知道我写的是否都是正确的,也许你也可以做一些重构,但正如上面另一个人所说的,如果我们知道你已经尝试了什么,那就更容易了。我希望我的回答至少能让你知道该怎么做。

相关问题