2016-06-04 10 views
0

Hallo Leute, ich mache ein Inventar-Programm und ich habe Probleme mit der StockItem Remove-Methode. Ich möchte, dass das Objekt am angegebenen Index entfernt wird und das entfernte Objekt zurückgegeben wird. Und gibt null zurück, wenn der Index ungültig ist.Inventar-Programm in Java

Dies ist mein Code so weit. Bitte scrolle nach unten, um zu sehen, worüber ich rede.

import java.util.ArrayList; 

public class Inventory { 
    private ArrayList<StockItem> stock; 

    public Inventory() { 
     stock = new ArrayList<StockItem>(); 
    } 

    public void addStockItem(StockItem item) { 
     stock.add(item); 
    } 

    public int size() { 
     return stock.size(); 
    } 

    public String toString() { 
     String result = ""; 
     for(StockItem item: stock) 
      result+=item.toString()+"\n"; 
     return result; 
    } 

    public boolean isValidIndex(int index) { 
     return index >=0 && index < stock.size(); 
    } 


    public StockItem getItem(int index) { 
     if (index < 0 || index >= this.stock.size()){ 
       return null; 
     } 
     return this.stock.get(index); 
    } 


    /** 
    * 
    * @param index 
    * @return null if index is invalid, otherwise 
    * remove item at the given index and return the 
    * removed item. 
    */ 
    public StockItem remove(int index) { 
     return null; //I need to do this part 
    } 


} 

Antwort

0

könnte es so etwas wie diese:

/** 
* 
* @param index 
* @return null if index is invalid, otherwise remove item at the given 
*   index and return the removed item. 
*/ 
public StockItem remove(int index) { 
    if (index >= 0 && index < stock.size()) // check if this index exists 
     return stock.remove(index); // removes the item the from stock and returns it 
    else 
     return null; // The item doesn't actually exist 
} 

und ein Beispiel zu entfernen unter Verwendung von Objekt:

public boolean remove(StockItem item) { 
    if (item != null && stock != null && stock.size() != 0) 
     return stock.remove(item); 
    else 
     return false; 
} 
+1

'stock.remove (index)' entfernt und gibt das entfernte Element zurück, so dass Sie das Element nicht zuerst abrufen müssen, um es entfernen zu können. – ujulu

0

müssen Sie mit allen Elementen in der Liste zu durchlaufen und, wenn Sie ein Spiel der Artikel finden, die removed..you sein muss kann, dass bestimmte Artikel entfernen ..

Iterierte eine for-Schleife diese Liste und vergleichen ...

0

die Methoden verwenden Sie erklärt haben bereits der Code kann so etwas wie dieses:

public StockItem remove(int index) { 
    // if the index is valid then remove and return the item in given index 
    if(isValidIndex(index)){ 
     return this.stock.remove(index); 
    } 

    //return null otherwise 
    else{ 
     return null; 
    } 
} 

Die Remove-Methode in Arraylist entfernt das Element bei bestimmten Index und gibt das entfernte Element. Bitte lesen Sie die Dokumentation von ArrayList für weitere Informationen.