当前位置: 首页 > 面试题库 >

如何在Java流集合中查找BigDecimal字段的最小值?

周博达
2023-03-14
问题内容

我想使用 Java流迭代 列表
并找到BigDecimal最低价格。以下说明,但不起作用(因为min()无法接受BigDecimal

class Product {
    public BigDecimal price;
}

List<Product> products;
products.stream().min((Product) p -> p.price);

问题答案:

既然BigDecimal已经是Comparable,它就这么简单:

 BigDecimal min = products
        .stream()
        .map(Product::getPrice)
        .min(Comparator.naturalOrder())
        .orElse(BigDecimal.ZERO);


 类似资料:
  • 我试图找到最小的整数中的只是使用两个简单的循环。我最初尝试了一个循环,但是它没有正确更新。我还没有学习,所以这应该在不使用任何代码的情况下完成。 这就是我所拥有的: 我的最小值似乎总是列表中的最后一个值,所以我尝试打印以查看发生了什么,它似乎会更新不同的值,最后更新最后一个值。我不知道为什么会这样。 这是它正在打印的内容,例如:

  • 这里是我尝试的代码,我成功地获得了所有集合的名称,但当我搜索特定的字段时,它不起作用,也没有给我任何错误。 该代码没有错误,也没有警告。

  • 请考虑以下类: 如何才能编写一个java流“管道”,其工作方式与第一个方法(getRemainingCompanyBalance)相同。此代码将导致错误。 该清单包含每个部门的单独清单。子列表中的每个条目都是类的一个实例。名称/费用:

  • 需要帮助的一个案件流与分组由我希望能够分组由2个不同的字段,并有其他大小数字段的总和,根据不同的分组。以下是我的实体: 让我们假设我有以下列表作为输入: 下面有一个解决方案的开头,但我在添加第二个聚合来总结余额的时候阻止了:

  • 使用while循环,我必须执行以下操作: 使用变量“I”,计算输入的整数数量;使用变量“number”,表示输入的数字;使用变量“min”,表示迄今为止输入的最小数字;使用变量“max”,表示迄今为止输入的最大数字 用户将总共输入5个整数。 这是我的代码: 当我运行这个时,“I”、“number”和“maximum”变量似乎都能正常工作。但是,“minimum”变量要记住,“minimum”的设置

  • 问题内容: 显而易见的答案是使用,但是我们最近发现这可能不是正确的答案。有人告诉我,结果在某些情况下不同于java.io类使用的实际默认字符集。看起来Java保留了2套默认字符集。有人对这个问题有见解吗? 我们能够重现一个失败案例。这是一种用户错误,但仍可能会暴露所有其他问题的根本原因。这是代码, 我们的服务器要求使用Latin-1中的默认字符集来处理传统协议中的某些混合编码(ANSI / Lat