我创建了一个方法,可以顺时针转动任何二维数组。
public boolean[][] rotateClockWise(boolean[][] array) {
if (array.length != array[0].length) return null;
boolean[][] turned = new boolean[array.length][array.length];
for (int i = 0; i < array.length; i++)
for (int a = 0; a < array.length; a++)
turned[i][a] = array[array.length - a - 1][i];
return turned;
}
此方法目前仅适用于布尔数组。是否可以修改这个方法以应用于任何对象数组?
(P.S。我尝试在代码中将“boolean”更改为“Object”,但是程序无法编译,因为“找不到合适的方法”)
提前致谢!
答案 0 :(得分:0)
你没有找到合适的方法&#34;错误,因为参数类型不匹配。您可以通过提供如下所示的Object参数来解决它。
但是,使用此新方法返回类型为Object[][]
,无论您在何处调用此方法,都必须将指定变量的类型更改为Object[][]
。它甚至可能需要对您的代码进行一些进一步的修改。
public Object[][] rotateClockWise(Object twoDArray) {
Object[][] array = (Object[][]) twoDArray;
if (array.length != array[0].length) return null;
Object[][] turned = new Object[array.length][array.length];
for (int i = 0; i < array.length; i++)
for (int a = 0; a < array.length; a++)
turned[i][a] = array[array.length - a - 1][i];
return turned;
}