2D阵列并创建图像的镜像

时间:2016-04-17 01:57:16

标签: java arrays multidimensional-array computer-science

我应该使用2D数组创建一个图像编辑器。对于这部分,我应该创建代码,通过从左到右翻转来创建图像的镜像。相反,我把它翻转过来。我做错了什么?

public void mirror() {
    // TODO Auto-generated method stub
    int[] img;
    int left = 0, right = data.length -1;
    while (right >= left) {
        img = data[left];
        data[left++] = data[right];
        data[right--] = img;
    }       
}

3 个答案:

答案 0 :(得分:0)

多个问题: 1.您使用的是1D阵列。 2. 1d数组上的public static String fromSender(ArrayList<Message> messageList, String pname){ String result = ""; for(int i=0; i<messageList.size(); i++){ if(messageList.get(i).getSender().equals(pname)){ result += messageList.get(i).getContent() + " "; } } return result; } 为您提供行数。 3.现在,当您使用data.length进行反转时,最终会在2d数组中反复行而不是列。 因此,您输出逻辑上不正确。

使用镜像方法应该是这样的 -

data.length

答案 1 :(得分:0)

问题是你只是镜像构成矩阵的数组,而不是反转数组的顺序。假设RectangularEntityClass.h: In constructor ‘RectangularEntityClass::RectangularEntityClass()’: RectangularEntityClass.h:12:7: error: no matching function for call to ‘MapEntityClass::MapEntityClass()’ class RectangularEntityClass:public MapEntityClass ^ RectangularEntityClass.h:12:7: note: candidates are: In file included from main.cpp:1:0: MapEntityClass.h:32:5: note: MapEntityClass::MapEntityClass(const PixelLocationClass&, const ColorClass&) MapEntityClass( ^ MapEntityClass.h:32:5: note: candidate expects 2 arguments, 0 provided 实际上是一个2D数组开始,这应该适合你。

data

答案 2 :(得分:0)

比我认为的其他答案更简单的方法:

int[][] mirrored = new int[data.length][data[0].length];
for (int i = 0; i < data.length; i++) {
    for (int j = 0; j < data[i].length; j++) {
        mirrored[i][data[i].length - j - 1] = data[i][j];
    }
}