Java 重复二维阵列?

Java 重复二维阵列?,java,multidimensional-array,repeat,Java,Multidimensional Array,Repeat,所以,这是我们需要做的作业 除了最后一个方法fullSymmetricPattern之外,我已经完成了所有的方法。我知道我可以在其他方法中使用方法,特别是最后一个,但我真的不确定从哪里开始。有谁能给我指点怎么做,或者从哪里开始?提前谢谢 (c) 编写方法fullSymmetricPattern。此方法采用二维字符串数组 作为表示模式的参数basePat和两个int参数hReps和vReps。它回来了 一种阵列,在水平方向上具有重复的hReps时间块,在垂直方向上具有重复的vReps时间块,其中

所以,这是我们需要做的作业

除了最后一个方法fullSymmetricPattern之外,我已经完成了所有的方法。我知道我可以在其他方法中使用方法,特别是最后一个,但我真的不确定从哪里开始。有谁能给我指点怎么做,或者从哪里开始?提前谢谢

(c) 编写方法fullSymmetricPattern。此方法采用二维字符串数组

作为表示模式的参数basePat和两个int参数hReps和vReps。它回来了

一种阵列,在水平方向上具有重复的hReps时间块,在垂直方向上具有重复的vReps时间块,其中

块是基于basePat的双向对称图案

public String[][] fullSymmetricPattern(String[][] basePat, int hReps, int vReps)

方法
fullSymmetricPattern()
是最容易实现的方法,可以重用方法
twoWaySymmetric()
copyOnce()
(来自
(b)
(c)

  • 调用
    twoWaySymmetric()
  • 创建目标矩阵为双向对称矩阵的大小
  • 使用两个嵌套循环,重复调用
    copyOnce()
    ,使用适当的偏移量(
    startRow
    startCol
    )将双向对称矩阵复制到目标矩阵中

后续评论:


在我继续之前,你能确认我的copyOnce方法有效吗?我想它坏了

您再次删除了代码,但看起来还行,除了:

  • 返回
    false
    的条件错误

  • 我想,你不是说循环直到
    (d)
    ,而是说循环到
    (c)
    。如果你能找出
    (b)
    ,那么
    (d)
    有什么问题?它只是对相同概念的简单扩展。忘了方法重用吧,你们以后可以一直优化它。我在试着做d。我的问题是,我不知道如何继续制作全新的,并以有效的方式填充它们。我需要像三重for循环这样的东西吗?在我继续之前,你能确认我的copyOnce方法有效吗?我想它坏了。我用它编辑了我的文章@安德烈亚斯
    public static boolean copyOnce(String[][] a, String[][] b, int startRow, int startCol) {
        final int rowCount = b.length;
        final int colCount = b[0].length;
        if (startRow < 0 || startRow + rowCount > a.length)
            return false; // Invalid start row
        if (startCol < 0 || startCol + colCount > a[0].length)
            return false; // Invalid start column
        for (int row = 0; row < rowCount; row++)
            for (int col = 0; col < colCount; col++)
                a[startRow + row][startCol + col] = b[row][col];
        return true;
    }