ArrayDeque对象

时间:2015-10-26 22:34:36

标签: java casting arraydeque

我有一个方法,它将char [] []作为参数(基本上是字符的NxN网格)并使用ArrayDeque来查看整个2d数组。我想从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 [] []的情况下获取行和列?

1 个答案:

答案 0 :(得分:1)

ArrayDeque在做什么? Nothing!您添加一个值并将其取回。

虽然假设gridchar[][],并且知道push()需要Object,但它会隐式自动装箱值。

简而言之,你得到的是:

temp = (char[][])Character.valueOf(grid[0][0])

您正在向Character投放char[][],所以当然您会获得ClassCastException