2017-01-24 164 views
-2

參考: 類產品http://pastebin.com/LUWVzkNj
類店http://pastebin.com/XLRwBfrQ
級車http://pastebin.com/jqZcH4HK
查找元素,並添加到ArrayList的

我有一個店(集)的產品(itemNumber,價格),現在我想使用itemNumber搜索產品並將此產品添加到購物車(ArrayList)。爲此我必須創建一個名爲find product的方法。我已經嘗試過,但事情無法完成:

  1. 使用一個for循環試圖找到產品並將其添加到購物車(如果==不知道或等於是正確的):

    public void findProduct(int ItemNumber){ 
    for (Product item : item) 
    {if (item.getItemNumber() == itemNumber) 
    {add();} 
    
  2. 迭代通過設置來找到產品

    public void findProduct(int itemNumber) 
    {for(Iterator<Product> it = products.iterator(); it.hasNext();) 
    {Product p = it.next(); 
    if (p.equals(new Product())) 
    //add this product}} 
    
  3. 檢查組包含itemNumber給藥,然後添加本品

    public void findProduct(int itemNumber) 
    {if (products.contains(itemNumber)) 
    {//add this product; }} 
    

我試圖谷歌,如果你可以從一組元素添加到一個ArrayList或者如果你能找到一組列表中的特定元素,但無法找到任何東西,或沒有,這是不夠具體幫助我出去了。所以我想知道,一旦我設法完成它們,這些實際上是否會有效?

+2

也許merhod'findProduct'應該返回一些東西(不是void)? – vikingsteve

回答

1

你的第一種方法是簡單有效的同時,但你需要一些更多的控制:

public void findProduct(int ItemNumber){ 
    for (Product item : item) { 
     if (item.getItemNumber() == itemNumber){ 
     cart.add (item) 
     break; //to leave the loop once it's found 
    } 

車是你的ArrayList

1

你的第一個版本是可能的。但是,你換各個----循環將無法工作:

public void findProduct(int itemNumber){ 
    for (Product item : shop) { 
     if (item.getItemNumber() == itemNumber){ 
     cart.add(item) 
     break; 
    } 

cart是你的清單,shop是你的設置。

相關問題