java使用stream求平均值
时间: 2023-08-28 21:20:26 浏览: 99
在Java中,你可以使用Stream来对一组数据进行操作。要求平均值,你可以使用`average()`方法来计算。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
double average = numbers.stream()
.mapToDouble(Integer::doubleValue)
.average()
.orElse(0.0);
System.out.println("平均值: " + average);
}
}
```
在这个示例中,我们使用`Arrays.asList()`方法创建了一个包含整数的列表。然后,我们将列表转换为Stream,并使用`mapToDouble()`方法将整数转换为双精度数。接下来,我们调用`average()`方法来计算平均值,并使用`orElse()`方法来处理空列表的情况。最后,我们将平均值打印出来。
请注意,这只是一个简单的示例。你可以根据自己的需求修改代码来适应不同的数据类型和操作。
相关问题
bigdecimal使用stream求平均值
您可以使用`BigDecimal`的`stream`方法来求平均值。首先,将`BigDecimal`对象存储在一个`List`或数组中,然后使用`stream`方法创建一个流。接下来,使用`reduce`方法将所有元素相加,并使用`divide`方法除以元素的数量来计算平均值。下面是一个示例代码:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<BigDecimal> numbers = Arrays.asList(
new BigDecimal("1.2"),
new BigDecimal("2.5"),
new BigDecimal("3.7"),
new BigDecimal("4.9"),
new BigDecimal("5.1")
);
BigDecimal average = numbers.stream()
.reduce(BigDecimal.ZERO, BigDecimal::add)
.divide(new BigDecimal(numbers.size()));
System.out.println("平均值: " + average);
}
}
```
在上面的示例中,我们创建了一个包含`BigDecimal`对象的列表`numbers`。然后,我们使用`stream`方法将列表转换为一个流。接下来,我们使用`reduce`方法将所有元素相加,并使用`divide`方法将总和除以元素的数量来计算平均值。最后,我们打印出平均值。
请注意,上述示例假设您已经将所需的数值存储在`BigDecimal`对象中,并且已经导入了`java.math.BigDecimal`和`java.util.Arrays.List`类。您可以根据自己的需求进行调整和修改。
java使用 stream 计算平均值 list 存的BigDecimal
使用Java的Stream API可以很方便地对存储了BigDecimal类型的List进行计算平均值。下面是一个示例代码:
```java
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<BigDecimal> numbers = Arrays.asList(
new BigDecimal("10.5"),
new BigDecimal("20.3"),
new BigDecimal("30.8"),
new BigDecimal("40.2"),
new BigDecimal("50.6")
);
BigDecimal average = numbers.stream()
.reduce(BigDecimal.ZERO, BigDecimal::add)
.divide(BigDecimal.valueOf(numbers.size()), 2, BigDecimal.ROUND_HALF_UP);
System.out.println("Average: " + average);
}
}
```
在这个例子中,我们首先创建了一个存储了BigDecimal类型的List。然后使用Stream的reduce()方法将所有元素累加起来,得到总和。接着,我们使用divide()方法将总和除以元素的个数,计算平均值。最后,我们使用setScale()方法设置小数位数,并使用ROUND_HALF_UP进行四舍五入。
运行以上代码,将输出平均值。根据你的具体需求,你可以根据实际情况进行调整。