统计List<Integer>数据区间的总数
时间: 2024-02-09 15:08:13 浏览: 58
假设要统计区间范围在 [start, end] 之间的整数个数,可以通过遍历 List 中的每个整数,判断其是否在区间内,如果在则累加计数器。具体实现代码如下:
```java
public int countInRange(List<Integer> list, int start, int end) {
int count = 0;
for (int num : list) {
if (num >= start && num <= end) {
count++;
}
}
return count;
}
```
调用该方法时,传入 List 和区间的起始和结束值即可统计区间内的整数个数。
相关问题
利用Stream统计List<Integer>数据区间的总数
可以使用 Java 8 的 Stream API 来实现统计 List 中区间范围内的整数个数。具体实现代码如下:
```java
public long countInRange(List<Integer> list, int start, int end) {
return list.stream()
.filter(num -> num >= start && num <= end)
.count();
}
```
上述代码中,首先将 List 转换为 Stream,然后使用 `filter` 方法过滤出区间内的整数,最后使用 `count` 方法统计个数。返回的是一个 long 类型的结果,表示区间内的整数个数。
调用该方法时,传入 List 和区间的起始和结束值即可统计区间内的整数个数。
List<BigDecimal> 转 List<Integer>
将 `List<BigDecimal>` 类型的数据转换为 `List<Integer>` 类型通常需要通过取整或者其它数据处理方式实现,因为 BigDecimal 和 Integer 存储的是不同的数值类型。以下是一个简单的示例,假设我们想要丢弃小数部分并转换:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 原始的大规模BigDecimal列表
List<BigDecimal> bigDecimalList = ...;
// 创建一个新的Integer列表来存储结果
List<Integer> integerList = new ArrayList<>();
for (BigDecimal bd : bigDecimalList) {
if (!bd.compareTo(BigDecimal.ZERO) == 0) { // 如果不是零,则转换
int intValue = bd.setScale(0, RoundingMode.UP).intValue(); // 取整并向上舍入
integerList.add(intValue);
}
}
System.out.println(integerList); // 输出转换后的整数列表
}
}
```
在这个例子中,`setScale()` 方法用于设置小数点后的位数,并指定舍入模式。如果原值为零或者小于零,转换后的结果可能是负数。