java中bigdecimal的泛型list集合整个集合的平均值
时间: 2024-03-15 22:45:41 浏览: 114
你可以使用以下代码来计算一个泛型 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 变量中。最后将这个累加和除以元素个数,得到平均值。在这个例子中,除法的结果保留两位小数,并使用四舍五入的方式进行取舍。
java8list集合中BigDecimal求和
在Java 8中,您可以使用stream()和reduce()方法来对BigDecimal类型的列表进行求和。以下是一个示例代码:
```
List<BigDecimal> numbers = Arrays.asList(new BigDecimal("10.0"), new BigDecimal("20.0"), new BigDecimal("30.0"));
BigDecimal sum = numbers.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Sum of numbers: " + sum);
```
在这个例子中,我们首先创建了一个包含三个BigDecimal值的列表。然后,我们使用stream()方法将其转换为流,并使用reduce()方法对流中的所有元素进行求和。第一个参数BigDecimal.ZERO是reduce()方法的初始值,而第二个参数BigDecimal::add是一个函数,它将两个BigDecimal值相加。最后,将求和结果打印出来。
注意:在使用BigDecimal进行计算时,应该使用BigDecimal的方法进行计算,而不是使用基本类型的+、-、*、/运算符。
阅读全文