Java 重复二维阵列?
所以,这是我们需要做的作业 除了最后一个方法fullSymmetricPattern之外,我已经完成了所有的方法。我知道我可以在其他方法中使用方法,特别是最后一个,但我真的不确定从哪里开始。有谁能给我指点怎么做,或者从哪里开始?提前谢谢 (c) 编写方法fullSymmetricPattern。此方法采用二维字符串数组 作为表示模式的参数basePat和两个int参数hReps和vReps。它回来了 一种阵列,在水平方向上具有重复的hReps时间块,在垂直方向上具有重复的vReps时间块,其中 块是基于basePat的双向对称图案Java 重复二维阵列?,java,multidimensional-array,repeat,Java,Multidimensional Array,Repeat,所以,这是我们需要做的作业 除了最后一个方法fullSymmetricPattern之外,我已经完成了所有的方法。我知道我可以在其他方法中使用方法,特别是最后一个,但我真的不确定从哪里开始。有谁能给我指点怎么做,或者从哪里开始?提前谢谢 (c) 编写方法fullSymmetricPattern。此方法采用二维字符串数组 作为表示模式的参数basePat和两个int参数hReps和vReps。它回来了 一种阵列,在水平方向上具有重复的hReps时间块,在垂直方向上具有重复的vReps时间块,其中
public String[][] fullSymmetricPattern(String[][] basePat, int hReps, int vReps)
方法
fullSymmetricPattern()
是最容易实现的方法,可以重用方法twoWaySymmetric()
和copyOnce()
(来自(b)
和(c)
)
- 调用
twoWaySymmetric()
- 创建目标矩阵为双向对称矩阵的大小
- 使用两个嵌套循环,重复调用
,使用适当的偏移量(copyOnce()
和startRow
)将双向对称矩阵复制到目标矩阵中startCol
后续评论:
在我继续之前,你能确认我的copyOnce方法有效吗?我想它坏了 您再次删除了代码,但看起来还行,除了:
- 返回
的条件错误false
- 我想,你不是说循环直到
,而是说循环到(d)
。如果你能找出(c)
,那么(b)
有什么问题?它只是对相同概念的简单扩展。忘了方法重用吧,你们以后可以一直优化它。我在试着做d。我的问题是,我不知道如何继续制作全新的,并以有效的方式填充它们。我需要像三重for循环这样的东西吗?在我继续之前,你能确认我的copyOnce方法有效吗?我想它坏了。我用它编辑了我的文章@安德烈亚斯(d)
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; }