来自 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