我创建了一个顺时针旋转任意二维数组的方法。
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;
}
此方法目前仅适用于布尔型数组。是否可以修改这一方法以应用于任何对象数组?
(附注:我尝试将代码中的"boolean“改为"Object”,但随后程序无法编译,因为“找不到合适的方法”)
提前感谢!
发布于 2014-07-12 07:08:07
由于参数类型不匹配,您收到“找不到合适的方法”错误。您可以通过提供如下所示的对象参数来解决此问题。但是,对于这个新方法,返回类型将是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;
}
https://stackoverflow.com/questions/24710048
复制