java实现 List<BigDecimal> valueList 取平均值
时间: 2024-05-12 20:17:20 浏览: 6
可以使用 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<String>转化为List<BigDecimal>
要将 `List<String>` 转换为 `List<BigDecimal>`,你可以使用流(Stream)和 `BigDecimal` 的 `valueOf` 方法来实现。以下是一种实现方式:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("1.23", "4.56", "7.89");
List<BigDecimal> bigDecimalList = stringList.stream()
.map(BigDecimal::new)
.collect(Collectors.toList());
System.out.println(bigDecimalList);
}
}
```
在上述示例中,我们首先创建了一个 `List<String>`,名为 `stringList`,其中包含了几个字符串表示的数字。然后,我们使用流的 `map` 操作来将每个字符串转换为对应的 `BigDecimal` 对象。这里使用了方法引用 `BigDecimal::new` 来创建 `BigDecimal` 对象。最后,我们使用 `collect` 方法将流收集为一个新的 `List<BigDecimal>`,名为 `bigDecimalList`。
运行以上代码,输出将会是:
```
[1.23, 4.56, 7.89]
```
这就是将 `List<String>` 转换为 `List<BigDecimal>` 后的结果。
希望对你有帮助!如果还有其他问题,请随时提问。