Java获取列表中多组连续数据

Java获取列表中多组连续数据

Java中有时需要把相邻连续的元素取出,获取列表中多组连续数据
如[1,2,4,5,6,7,16,17,18,26],,这里需要把相邻连续的数分组取出,取出结果为:
[[1, 2], [4, 5, 6, 7], [16, 17, 18], [26]],下面为Java的一个实现方法。

// 实现方法
 /**
     * 获取列表中多组相邻连续数据
     * @param list 原数据
     * @return 多组连续数据
     */
    public static List<List<Integer>> getSerialNumList(List<Integer> list) {
        //收集的总的连续列表
        List<List<Integer>> collect = new ArrayList<>();
        //每个收集的连续临时列表
        List<Integer> tempList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            int current = list.get(i);
            if (i < list.size() - 1) {
                int next = list.get(i + 1);
                if (current + 1 == next) {
                    tempList.add(current);
                } else {
                    //不连续时,把最后一个数放进去之前的临时列表
                    tempList.add(current);
                    collect.add(tempList);
                    //同时把临时列表置空
                    tempList = new ArrayList<>();

                }
            } else {
                //最后一个元素时,放入最后一个临时列表中
                tempList.add(current);
                collect.add(tempList);
            }
        }
        System.out.println(collect);
        return collect;
    }

// 输入一些数据进行测试
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1,2,4,5,6,7,16,17,18,26);
        getSerialNumList(list);
    }
// 输出结果:
[[1, 2], [4, 5, 6, 7], [16, 17, 18], [26]]

链接: link.

图片: Alt

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现连续称重数据处理,你可以使用Java编程语言来处理。下面是一个简单的示例代码,用于处理连续称重数据: ```java import java.util.ArrayList; import java.util.List; public class WeightDataProcessor { private List<Double> weightData; public WeightDataProcessor() { weightData = new ArrayList<>(); } public void addWeight(double weight) { weightData.add(weight); } public double getAverageWeight() { if (weightData.isEmpty()) { return 0.0; } double sum = 0.0; for (double weight : weightData) { sum += weight; } return sum / weightData.size(); } public double getMaxWeight() { if (weightData.isEmpty()) { return 0.0; } double maxWeight = weightData.get(0); for (double weight : weightData) { if (weight > maxWeight) { maxWeight = weight; } } return maxWeight; } public double getMinWeight() { if (weightData.isEmpty()) { return 0.0; } double minWeight = weightData.get(0); for (double weight : weightData) { if (weight < minWeight) { minWeight = weight; } } return minWeight; } public int getDataCount() { return weightData.size(); } public void clearData() { weightData.clear(); } } ``` 这个示例代码定义了一个名为`WeightDataProcessor`的类,它包含了一个用于存储连续称重数据列表`weightData`。你可以使用`addWeight`方法向列表添加新的称重数据。通过调用`getAverageWeight`方法,你可以获得已添加数据的平均值。同样地,通过调用`getMaxWeight`和`getMinWeight`方法,你可以获得已添加数据的最大值和最小值。使用`getDataCount`方法可以获取已添加的数据数量,而`clearData`方法可以清空列表数据。 你可以根据自己的需求进行扩展和修改这个示例代码。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值