如何在Set中返回一个不同的对象并求和一个公共值?

毒蛇

例如:我有一个Set,其中包含两个或多个Product实例对象(“它们具有不同的数量值”)

public class Product{

private int id;
private String name;
private String brand;
private Long amount;

// getter and setters
}

是否可以使用Stream获得一个对象并求和金额值?

锆石

假设您有一个Set<Product>位置,其中每个产品的ID,名称和品牌相同,但数量不同。我们可以很容易地创建一个新的Product,但是用一个创建一个Stream是多余的(reduce也许可以使用,但是可能比下面的创建更多的开销)。相反,让我们为您的问题创建一个空集安全的解决方案:

public Product getTotalAsProduct(Set<Product> set) {
    Product newProduct = null;
    Optional<Product> findProduct = set.stream().findFirst();
    if(findProduct.isPresent()) { //No sense in making an object if set is empty
        //Create a new Product with the same id, name, brand
        newProduct = findProduct.get().clone(); //If Cloneable, OR create a constructor that takes a Product and makes a new one, OR make a new Product() and get/set as needed
        long totalAmount = set.stream().mapToInt(Product::getAmount).sum();
        newProduct.setAmount(totalAmount);
    }
    return newProduct; //Null if set was empty
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Eiffel 中返回一个值或一个对象?

求和一个对象值

如何对一个函数的不同值求和?

如何在powershell中返回一个对象

如何对一个对象的属性值求和?

如何在C中返回一个int值?

如何用相同的键求和值并返回一个对象?

如何对向量中的一个符号仅值求和

如何在golang中为具有一个公共字段的不同结构添加方法

如何从包含 Promise 和 .then 的函数返回一个对象,以及如何在另一个函数中获取返回值?

如何在Java中求和一个整数?

如何在Excel中求和一个受控数组?

数据整理:在 javascript 中对来自两个不同数组的值求和并推送一个新对象

如何在一个雄辩的json字段中求和,该字段包含Eloquent的对象数组

如果值在另一个列表中,如何在条件上求和

如何在多个标准中求和,其中一个是范围(值列表)?

如何在同一Javascript对象中的另一个属性的值中引用一个属性?

如何在jQuery中共有两个具有一个特定属性的对象的值求和?

给定一个数组,使用一个函数根据数组中的不同值求和某些值

如何从一个特定对象返回值?

如何在一个Flask路由中返回一个对象和一个html文件?

在同一个“返回值对象”中访问一个 javascript 函数

如何在一个表中选择不同的值?

如何在R中创建一个新变量,如果一个案例缺少一个值而另一个变量具有一个观察到的值,则返回1?

如何将共享一个公共密钥的两个对象的两个值合并在一起并返回它?

如何在另一个函数中引用 2 个函数的返回值?

如何在另一个列表中返回3个最低值的列表

如何在条件后返回一个值

如何在Ansible中为另一个主机使用另一个任务中的一个任务的返回值