2016-06-04 9 views
0

Привет, ребята, я делаю программу инвентаризации, и у меня возникают проблемы с методом removeItem. Я хочу, чтобы он удалял элемент по указанному индексу и возвращал удаленный элемент. И возвратите значение null, если индекс недействителен.Программа инвентаризации в java

Это мой код. Прокрутите страницу вниз, чтобы узнать, о чем я говорю.

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 
    } 


} 

ответ

0

это может быть что-то вроде этого:

/** 
* 
* @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 
} 

и один пример удаления с помощью объекта:

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

'stock.remove (index)' удаляет и возвращает удаленный элемент, поэтому вам не нужно сначала извлекать элемент, чтобы его можно было удалить. – ujulu

0

вам нужно перебирать все элементы в списке, и когда вы найти соответствие элемента, который должен быть removed..you может удалить этот конкретный пункт ..

итерации для цикла из этого списка и сравнить ...

0

Используя методы, объявивших уже код может быть что-то вроде этого:

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

Метод удалить в ArrayList удаляет элемент в данном индексе и возвращает удаленный элемент. Пожалуйста, ознакомьтесь с документацией ArrayList для получения дополнительной информации.