OptionalBigDecimal minValue = liststream minBigDecimalcompareTo;if !minValueisPresent throw new IllegalArgumentExceptionList is empty;return listindexOfminValueget; 有多个最小值怎么办不能使用listget方法
如果有多个最小值,可以使用list.indexOf方法来获取第一个最小值的索引。然后,可以使用list.subList方法来获取包含第一个最小值的子列表,然后再次使用list.indexOf方法来获取第二个最小值在子列表中的索引。以此类推,直到找到所有最小值的索引。以下是一个示例代码:
Optional<BigDecimal> minValue = list.stream()
.min(BigDecimal::compareTo);
if (!minValue.isPresent()) {
throw new IllegalArgumentException("List is empty");
}
BigDecimal min = minValue.get();
List<BigDecimal> subList = list.subList(0, list.indexOf(min) + 1);
List<Integer> indexes = new ArrayList<>();
int index = -1;
while ((index = subList.indexOf(min, index + 1)) != -1) {
indexes.add(index);
}
return indexes;
这样,indexes列表将包含所有最小值的索引
原文地址: https://www.cveoy.top/t/topic/is51 著作权归作者所有。请勿转载和采集!