【发布时间】:2015-04-03 12:49:45
【问题描述】:
我做了一个 Stack 和一个 ArrayList 来进行研究。实际上,我现在想让我的 Stack 替换为 ArrayList,但是如何将 Stack 转换为 ArrayList 呢? push、pop ... 的情况如何?
谢谢
public static ArrayList<State> search(State finalstate)
{
ArrayList<State> toreturn = new ArrayList<State>();
Stack<State>mystack=new Stack<State>();
mystack.push(initState);
State currState;
currState=initState;
while(!mystack.isEmpty() && !currState.equals(finalstate) )
{
currState=mystack.pop();
toreturn.add(currState);
if(currState.vecinos.containsKey("up"))
{
mystack.push(currState).vecinos.get("up");
}
if(currState.vecinos.containsKey("down"))
{
mystack.push(currState).vecinos.get("down");
}
if(currState.vecinos.containsKey("left"))
{
mystack.push(currState).vecinos.get("left");
}
if(currState.vecinos.containsKey("right"))
{
mystack.push(currState).vecinos.get("right");
}
}
return toreturn;
}
【问题讨论】:
-
pop从Stack中删除项目,push将项目添加到Stack。为什么在复制到List时将项目添加到Stack?当方法完成时,你想在你的List中做什么? -
只是为了在List中留下痕迹
-
只是为了跟踪*抱歉
-
这是什么意思?您在复制
Stack时正在修改它...这可能不是您想要的。