0
public class Coordinate{

private Integer row;
private Integer column;

public Coordinate(Integer row, Integer column){
    this.row = row;
    this.column = column;
}

public void setRow(Integer row){
    this.row = row;
}

public void setColumn(Integer column){
    this.column = column;
}

public Integer getRow(){
    return row;
}

public Integer getColumn(){
    return column;
}

public String toString(){
    return "<" + row.toString() + "," + column.toString() + ">";
}
}

好的,所以我有这个坐标类,并且我将其中一些推到了堆栈上。现在我想做的是在其中一个上 peek() 并能够在我偷看的那个上使用 getRow 和 getColumn 方法。我该怎么做呢?我遇到的问题是我正在创建一个新的 Coordinate 实例,然后将 stack.peek() 分配给它,然后使用它上面的方法,但这不起作用。使困惑

4

2 回答 2

1

看起来您可能必须将 stack.peek() 的结果转换为您的 Coordinate 类。类似的东西System.out.println(((Coordinate)mazeStack.peek()).getRow());可能是您正在寻找的东西。

于 2012-04-10T00:04:08.913 回答
1
Coordinate c = new Coordinate(1,2);
Stack<Coordinate> s = new Stack<Coordinate>();
s.push(c);
System.out.println(s.peek());

Coordinate c2 = (Coordinate)s.pop();
System.out.println(c2);
System.out.println(c2.getRow());

不过这里有一个提示,不要使用 java.util.Stack。它来自不是很好的原始收藏库。

编辑修改为代表演员,这听起来像你在这种情况下需要的。注意 c 和 c2 将指向同一个对象。

于 2012-04-09T23:43:42.637 回答