2D Arraylist-预测代码的输出

时间:2017-02-15 05:34:39

标签: java arraylist multidimensional-array

(链接:https://www.interviewbit.com/problems/array_2d/) 在使用

调用performOps时,难以对以下代码执行空运行

A:[[1,2,3,4],[5,6,7,8],[9,10,11,12]]。

ArrayList<ArrayList<Integer>> performOps(ArrayList<ArrayList<Integer>> A) {
       ArrayList<ArrayList<Integer>> B = new ArrayList<ArrayList<Integer>();
        for (int i = 0; i < A.size(); i++) {
            B.add(new ArrayList<Integer>());

            for (int j = 0; j < A.get(i).size(); j++) {
                B.get(i).add(0);
            }

            for (int j = 0; j < A.get(i).size(); j++) {
                B.get(i).set(A.get(i).size() - 1 - j, A.get(i).get(j));
            }
        }
        return B;
}

有谁可以帮助我理解它?

2 个答案:

答案 0 :(得分:0)

输出

4 3 2 1 
8 7 6 5 
12 11 10 9

你必须尝试初始化A.这不是这种情况.A的值是

1 2 3 4 
5 6 7 8 
9 10 11 12

然后在问题中询问进一步代码的输出。请仔细阅读问题。如果您还有其他需要,请注意。欢呼

答案 1 :(得分:0)

尝试将变量值替换为一个或两个循环。这将更容易理解这些问题,如果可能的话,可以在编辑器中对其进行编码,并一步一步地通过代码进行调试。

我试过一个循环。

ArrayList<ArrayList<Integer>> performOps(ArrayList<ArrayList<Integer>> A) {
        ArrayList<ArrayList<Integer>> B = new ArrayList<ArrayList<Integer>>();
        //A.size() is 3
        for (int i = 0; i < 3; i++) {
            B.add(new ArrayList<Integer>());

            //First Loop i = 0; A.get(0).size() = 4; Four elements in first index of array list
            for (int j = 0; j < 4; j++) {
                B.get(0).add(0); //Setting all elements to zeros
            }

            for (int j = 0; j < 4; j++) {
                B.get(0).set(4 - 1 - j, A.get(0).get(j));
                //For j = 0
                // B.get(0).set(3, 1); //A.get(0).get(0) = 1

                //For j = 1
                B.get(0).set(2, 2); //A.get(0).get(1) = 2

                //For j = 2
                B.get(0).set(1, 3); // A.get(0).get(2) = 3


                //For j = 3
                B.get(0).set(0, 4); //A.get(0).get(3) = 4
            }

            //At the end of above loop B=[[4, 3, 2 ,1]]
        }
        return B;
}

顺便说一下,输出将是二维集合,每个内部集合元素的顺序相反。