2015-02-04 25 views
6

Araştırma yapmak için bir Yığın ve bir ArrayList hazırladım. Aslında şu anda Stack'ımın bir ArrayList tarafından değiştirilmesini istiyorum, fakat bir Yığını bir ArrayList'e nasıl dönüştürebilirim? İtme ile nasıl gidiyor?Yığın -> ArrayList Java

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; 
} 
+0

Eh 'pop' bir' Stack' öğeleri kaldırır ve 'kullanabilirsiniz bir 'Stack'. Neden 'List''e kopyalanırken' Stack' 'a öğe ekliyorsunuz? Yöntem tamamlandığında, "List" inizde ne istiyorsunuz? –

+0

Sadece bir parça tutmak için List – maevy

+0

bir iz tutmak için * Üzgünüm – maevy

cevap

17

Yığın bir Koleksiyonu teşekkür ederim, push` öğeleri ekler ArrayList (Koleksiyon) yapıcısı

list = new ArrayList(stack);