arraylist求平均值
时间: 2024-03-10 09:39:30 浏览: 48
可以使用以下代码来求一个 ArrayList 中所有元素的平均值:
```java
ArrayList<Integer> list = new ArrayList<Integer>();
// 添加元素到 list 中
int sum = 0;
for (int i = 0; i < list.size(); i++) {
sum += list.get(i);
}
double average = (double) sum / list.size();
```
其中,sum 变量用于累加所有元素的值,average 变量用于存储平均值。需要注意的是,由于 sum 和 list.size() 都是整数类型,因此需要将 sum 强制转换为 double 类型,以避免整数除法的问题。
相关问题
java list求平均值
可以使用Java中的List的stream()方法和reduce()方法来求平均值,具体实现如下:
```java
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
double average = list.stream()
.mapToDouble(a -> a)
.average()
.orElse(0.0);
System.out.println("平均值为:" + average);
```
上述代码中,首先创建了一个包含整型元素的List对象,并初始化了几个元素,然后使用stream()方法将List转换为流进行操作。使用mapToDouble()方法将整型元素转换为double类型,然后使用average()方法求出平均值,最后使用orElse()方法指定如果流为空时的默认返回值。最终输出平均值。
BigDecimal求平均值除不尽
当使用BigDecimal求平均值时,如果除不尽(即出现循环小数),会报错。为了避免这种情况,可以使用BigDecimal的divide方法来进行精确的小数运算。以下是一个示例代码:
BigDecimal sum = new BigDecimal("0");
int count = 0;
// 假设有一个数组或集合包含了我们要求平均值的数据
List<BigDecimal> numbers = new ArrayList<>();
numbers.add(new BigDecimal("1.1"));
numbers.add(new BigDecimal("2.2"));
numbers.add(new BigDecimal("3.3"));
for (BigDecimal number : numbers) {
sum = sum.add(number);
count++;
}
BigDecimal average = sum.divide(new BigDecimal(count), 2, RoundingMode.HALF_UP);
System.out.println("平均值: " + average);
在上述代码中,我们使用BigDecimal的add方法计算总和,并使用divide方法除以计数来求得平均值。最后,我们使用RoundingMode.HALF_UP来指定保留两位小数并进行四舍五入。