java中bigdecimal泛型list集合整个集合的平均值
时间: 2024-03-15 19:45:40 浏览: 16
你可以使用以下代码来计算一个泛型 list 集合中所有元素的平均值:
```java
import java.math.BigDecimal;
import java.util.List;
public class AverageCalculator {
public static <T extends Number> BigDecimal calculateAverage(List<T> list) {
BigDecimal sum = BigDecimal.ZERO;
for (T element : list) {
sum = sum.add(BigDecimal.valueOf(element.doubleValue()));
}
return sum.divide(BigDecimal.valueOf(list.size()), 2, BigDecimal.ROUND_HALF_UP);
}
}
```
这里使用了泛型 T extends Number 来表示这个 list 集合中只包含数字类型的元素。然后遍历这个集合,将每个元素的 double 值转换为 BigDecimal,然后将它们累加到一个 BigDecimal 变量中。最后将这个累加和除以元素个数,得到平均值。在这个例子中,除法的结果保留两位小数,并使用四舍五入的方式进行取舍。
相关问题
java中bigdecimal的泛型list集合整个集合的平均值
你可以使用以下代码来计算一个泛型 list 集合中所有元素的平均值:
```java
import java.math.BigDecimal;
import java.util.List;
public class AverageCalculator {
public static <T extends Number> BigDecimal calculateAverage(List<T> list) {
BigDecimal sum = BigDecimal.ZERO;
for (T element : list) {
sum = sum.add(BigDecimal.valueOf(element.doubleValue()));
}
return sum.divide(BigDecimal.valueOf(list.size()), 2, BigDecimal.ROUND_HALF_UP);
}
}
```
这里使用了泛型 T extends Number 来表示这个 list 集合中只包含数字类型的元素。然后遍历这个集合,将每个元素的 double 值转换为 BigDecimal,然后将它们累加到一个 BigDecimal 变量中。最后将这个累加和除以元素个数,得到平均值。在这个例子中,除法的结果保留两位小数,并使用四舍五入的方式进行取舍。
java8中list集合BigDecimal求和
可以使用Java 8中的Stream API来对List集合中的BigDecimal进行求和。
示例代码如下:
```java
List<BigDecimal> list = Arrays.asList(BigDecimal.valueOf(10.0), BigDecimal.valueOf(20.0), BigDecimal.valueOf(30.0), BigDecimal.valueOf(40.0));
BigDecimal sum = list.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Sum of list elements is: " + sum);
```
输出结果为:
```
Sum of list elements is: 100.0
```
其中,`reduce()`方法接受两个参数,第一个参数为初始值,第二个参数为累加器。在上面的示例中,初始值为`BigDecimal.ZERO`,累加器为`BigDecimal::add`,即将列表中的每个元素加起来。最终得到的结果即为列表中所有元素的和。