如果有多个最小值,你可以使用Stream的"filter"方法来筛选出所有的最小值,然后使用"findFirst"方法来获取第一个最小值的索引。以下是修改后的代码:java\nOptional<BigDecimal> minValue = list.stream()\n .min(BigDecimal::compareTo);\nif (!minValue.isPresent()) {\n throw new IllegalArgumentException("List is empty");\n}\n\nBigDecimal min = minValue.get();\nint index = IntStream.range(0, list.size())\n .filter(i -> list.get(i).equals(min))\n .findFirst()\n .orElse(-1); // 如果没有找到最小值,可以返回一个特定的值,如-1\n\nreturn index;\n这段代码使用了IntStream.range方法来创建一个表示索引的流,然后使用filter方法来筛选出所有与最小值相等的元素的索引,最后使用findFirst方法来获取第一个符合条件的索引。如果没有找到最小值,可以使用orElse方法来指定一个默认值,如-1。

Java Stream 获取最小值索引,处理多个最小值情况

原文地址: http://www.cveoy.top/t/topic/qaGq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录