手机移动程序开发

Java一维集合重组成二维

2021-02-22  本文已影响0人  九狼JIULANG

正确写法:

ArrayList<ArrayList<Integer>> numbers = new ArrayList<>();
        ArrayList<Integer> number = new ArrayList<>();
        // 初始化数据
        int index = 0;
        for (int i = 0; i < 9; i ++) {
            if (i % 3 != 0) {
                index ++;
                number.add(i);
                if (index == 2) {
                    System.out.println("原数据 " + numbers.toString());
                    numbers.add(number);
                    System.out.println("加数据 " + numbers.toString());
                    index = 0;
//注意这里
                    number = new ArrayList<>();
                }
                System.out.println("----------------------------------------");
            }
        }
    }

打印结果:

----------------------------------------
原数据 []
加数据 [[1, 2]]
----------------------------------------
----------------------------------------
原数据 [[1, 2]]
加数据 [[1, 2], [4, 5]]
----------------------------------------
----------------------------------------
原数据 [[1, 2], [4, 5]]
加数据 [[1, 2], [4, 5], [7, 8]]
----------------------------------------

如果

number = new ArrayList<>();

改成

number.clear();

打印结果就会不一样

原数据 []
加数据 [[1, 2]]
----------------------------------------
----------------------------------------
原数据 [[4, 5]]
加数据 [[4, 5], [4, 5]]
----------------------------------------
----------------------------------------
原数据 [[7, 8], [7, 8]]
加数据 [[7, 8], [7, 8], [7, 8]]

结果被最后加入的占据了

我开始一度怀疑是编译器出问题了

上一篇 下一篇

猜你喜欢

热点阅读