JAVA 获取一组数据中的多组连续数据集合

给定一组数据,返回该数据中多组连续数据集合。

例如:

        给定  [2, 3, 4, 6, 8, 10, 11, 12, 15, 16]

        返回: [2, 3, 4],[6],[8],[10,11,12],[15,16]

使用java语言写的,逻辑很简单,应该都能看得懂,就直接贴代码了:
     /**
     * 获取列表中多组连续数据
     * @param list 原数据
     * @return 多组连续数据
     */
    public static List<List<Integer>> getSerialNumList(List<Integer> list) {
        List<List<Integer>> resultList = new ArrayList<>();
        List<Integer> arrList = new ArrayList<>();
        resultList.add(arrList);
        if (list.size() == 1) {
            resultList.get(resultList.size() - 1).add(list.get(0));
            return resultList;
        }
        for (int i = 0; i < list.size(); i++) {
            Integer nextNum = list.get(i + 1);
            Integer nowNum = list.get(i);
            if (nextNum - nowNum != 1) {
                resultList.get(resultList.size() - 1).add(nowNum);
                arrList = new ArrayList<>();
                resultList.add(arrList);
            } else {
                arrList.add(nowNum);
            }
            if (i + 1 == list.size() - 1 ) {
                arrList.add(nextNum);
                break;
            }
        }
        return resultList;
    }

 

    public static void main(String[] args) {
        Integer[] arr = {2, 3, 4, 6, 8, 10, 11, 12, 15, 16};
        List<Integer> list = new ArrayList<>(Arrays.asList(arr));
        List<List<Integer>> serialNumList = getSerialNumList(list);
        serialNumList.forEach(System.out::println);
    }

 

posted @ 2022-04-29 13:21  锐洋智能  阅读(943)  评论(0编辑  收藏  举报