java实现 List<BigDecimal> valueList 取平均值
时间: 2024-05-12 14:17:20 浏览: 161
可以使用 java 的 stream 和 BigDecimal 的相关方法来实现 List<BigDecimal> valueList 取平均值。代码示例如下:
```
import java.math.BigDecimal;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<BigDecimal> valueList = List.of(
new BigDecimal("10.0"),
new BigDecimal("20.0"),
new BigDecimal("30.0")
);
BigDecimal average = valueList.stream()
.reduce(BigDecimal.ZERO, BigDecimal::add)
.divide(BigDecimal.valueOf(valueList.size()));
System.out.println("平均值为:" + average);
}
}
```
该代码将 List<BigDecimal> valueList 中的元素累加并求其平均值,最终输出结果。注意,在实际使用中需要考虑各种精度问题以及异常情况的处理。
相关问题
java List <BigDecimal>转List<Object>
可以使用 Java 8 的 Stream API 将 `List<BigDecimal>` 转换为 `List<Object>`。例如:
```java
List<BigDecimal> bigDecimalList = Arrays.asList(BigDecimal.valueOf(1), BigDecimal.valueOf(2), BigDecimal.valueOf(3));
List<Object> objectList = bigDecimalList.stream().map(Object::valueOf).collect(Collectors.toList());
```
这里的 `map(Object::valueOf)` 将每个 `BigDecimal` 对象转换为对应的 `Object` 对象,最后使用 `collect(Collectors.toList())` 将转换后的结果收集为一个 `List`。
List<BigDecimal> 计算平均值
在Java中,如果你有一个`List<BigDecimal>`类型的列表,其中存储了一组`BigDecimal`数值,你可以通过遍历这个列表并求和,然后除以元素总数来计算平均值。以下是一个简单的示例:
```java
import java.math.BigDecimal;
import java.util.List;
public BigDecimal calculateAverage(List<BigDecimal> numbers) {
if (numbers.isEmpty()) {
return BigDecimal.ZERO; // 如果列表为空,返回0作为平均值
}
BigDecimal sum = BigDecimal.ZERO;
for (BigDecimal number : numbers) {
sum = sum.add(number); // 将每个数加到总和上
}
return sum.divide(numbers.size(), RoundingMode.HALF_UP); // 除以元素数量,并四舍五入
}
```
在这个例子中,`divide`方法用于除法运算,第二个参数指定小数点后的精确度(这里设置为四舍五入)。调用`calculateAverage`方法时,传入你的`List<BigDecimal>`即可得到平均值。
阅读全文