Stack --> ArrayList Java
Machte ich einen Stack und eine ArrayList zu forschen. Eigentlich will ich jetzt meinen Stapel ersetzt durch eine ArrayList, aber wie verwandeln Sie einen Stack in einer ArrayList ? Wie läuft es mit push, pop,... ?
Danke
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;
}
- Gut
pop
entfernt Elemente aus einemStack
, undpush
fügt Elemente zu einemStack
. Warum sind Sie hinzufügen von Elementen zu IhremStack
beim kopieren derList
? Was wollen Sie in IhremList
wenn die Methode abgeschlossen ist? - Nur um eine Spur in der Liste
- nur verfolgen* sorry
- Was bedeutet das? Sie ändern die
Stack
während Sie es kopieren... das ist wahrscheinlich nicht das, was Sie wollen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stack ist eine Sammlung, die Sie verwenden können ArrayList(Collection) - Konstruktor
Die obige Antwort ist nicht richtig, wie die Reihenfolge wird Umgekehrt.
Stattdessen können Sie einfach Durchlaufen wie diese: