来自 ArrayDeque 对象的二维字符数组的维度
Dimensions of 2d char array from ArrayDeque Object
我有一个方法将 char[][] 作为参数(基本上是一个 NxN 字符网格)并使用 ArrayDeque 来查看整个二维数组。我想从 ArrayDeque 中删除 char[][] 对象的行和列,目前使用的是:
ArrayDeque stack=new ArrayDeque();
stack.push(grid[0][0]); //grid being the 2d array passed to the method
char[][] temp=(char[][]) stack.pop();
int row=temp.length-1;
int column=temp[0].length-1;
这在 Eclipse 中编译,但是当 运行 抛出 ClassCastException 时。有没有办法在上面第二行没有char[][]的情况下获取行和列?
ArrayDeque
在做什么? 什么都没有! 你添加一个值然后把它取回来。
虽然,假设 grid
是一个 char[][]
,并且知道 push()
接受一个 Object
,它隐含地自动装箱该值。
简而言之,你得到的是:
temp = (char[][])Character.valueOf(grid[0][0])
您正在将 Character
转换为 char[][]
,因此您当然会得到 ClassCastException
。
我有一个方法将 char[][] 作为参数(基本上是一个 NxN 字符网格)并使用 ArrayDeque 来查看整个二维数组。我想从 ArrayDeque 中删除 char[][] 对象的行和列,目前使用的是:
ArrayDeque stack=new ArrayDeque();
stack.push(grid[0][0]); //grid being the 2d array passed to the method
char[][] temp=(char[][]) stack.pop();
int row=temp.length-1;
int column=temp[0].length-1;
这在 Eclipse 中编译,但是当 运行 抛出 ClassCastException 时。有没有办法在上面第二行没有char[][]的情况下获取行和列?
ArrayDeque
在做什么? 什么都没有! 你添加一个值然后把它取回来。
虽然,假设 grid
是一个 char[][]
,并且知道 push()
接受一个 Object
,它隐含地自动装箱该值。
简而言之,你得到的是:
temp = (char[][])Character.valueOf(grid[0][0])
您正在将 Character
转换为 char[][]
,因此您当然会得到 ClassCastException
。