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() + ">";
}
}

わかりましたので、私はこの座標クラスを持っていて、それらのいくつかをスタックにプッシュしました。今私がやりたいのは、そのうちの 1 つで peek() を実行し、私が覗いたもので getRow および getColumn メソッドを使用できるようにすることです。どうすればいいですか?私が抱えている問題は、Coordinate の新しいインスタンスを作成し、それに stack.peek() を割り当ててから、そのメソッドを使用していますが、それが機能していないことです。混乱している

4

2 に答える 2

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 に答える
1

stack.peek() の結果を Coordinate クラスにキャストする必要があるようです。System.out.println(((Coordinate)mazeStack.peek()).getRow());あなたが探しているもののようなものかもしれません。

于 2012-04-10T00:04:08.913 に答える