shoppingcart.java

来自「JAVA网上书店的程序原代码,希望对大家偶用」· Java 代码 · 共 71 行

JAVA
71
字号
package ebookshop.shopcart;

import java.util.*;

public class ShoppingCart {
  HashMap items = null;
  int numberOfItems = 0;  

  public ShoppingCart() {
      items = new HashMap();
  }

  //根据ISBN号增加ShopCartItem(购物车项)和书的数量
  public  void add(String isbn, BookDetails book) {
    if(items.containsKey(isbn))  //判断此HashMap是否存在此isbn的cartItem(购物车项)
    {
        ShopCartItem scitem = (ShopCartItem) items.get(isbn);
        scitem.bookNumberAdd();
    } else {
        ShopCartItem newItem = new ShopCartItem(book);
        items.put(isbn, newItem);  //把newItem放入HashMap中,并且key="isbn"
    }

    numberOfItems++;
  }

  //根据ISBN号删除ShopCartItem(购物车项)和书的数量
  public void remove(String isbn) {
    if(items.containsKey(isbn)) {
        ShopCartItem scitem = (ShopCartItem) items.get(isbn);
        scitem.bookNumberReduce();

        if(scitem.getBookNumber() <= 0)
            items.remove(isbn);

        numberOfItems--;
    }
  }

  public Collection getItems() {
      return items.values(); //返回此映射所包含的值的 collection(集合)
  }

  //override java.lang.Object的finalize()以便配置系统资源或执行其他清除
  protected void finalize() throws Throwable {
      items.clear();
  }

  public int getNumberOfItems() {
      return numberOfItems;
  }
  
  //计算购物车中所有书的总金额
  public float getTotal() {
	float total = 0;
    for(Iterator i = getItems().iterator(); i.hasNext(); ) {
        ShopCartItem item = (ShopCartItem) i.next();
        BookDetails bookDetails = (BookDetails) item.getBook();

        total += item.getBookNumber() * bookDetails.getPrice().floatValue();
    }
    return total;
  } 

  public void clear() {
      items.clear();
      numberOfItems = 0;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?