shoppingcart.java

来自「一个简单的网上购书系统」· Java 代码 · 共 71 行

JAVA
71
字号
package mypack;

import java.util.*;

public class ShoppingCart {
	HashMap items = null;
	int numberOfItems = 0;
	
	public ShoppingCart() {
		items = new HashMap();
	}
	
	public synchronized void add(String bookId,BookDetails book) {
		if(items.containsKey(bookId)) {
			ShoppingCartItem scitem = (ShoppingCartItem) items.get(bookId);
			scitem.incrementQuantity();
		} else {
			ShoppingCartItem newItem = new ShoppingCartItem(book);
			items.put(bookId,newItem);
		}
		
		numberOfItems++;
	}
	
	public synchronized void remove(String bookId) {
		if(items.containsKey(bookId)) {
			ShoppingCartItem scitem = (ShoppingCartItem) items.get(bookId);
			scitem.decrementQuantity();
			
			if(scitem.getQuantity()<=0)
				items.remove(bookId);
			
		numberOfItems--;
		}
	}
	
	public synchronized Collection getItems() {
		return items.values();
	}
	
	protected void finalize() throws Throwable {
		items.clear();
	}
	
	public synchronized int getNumberOfItems() {
		return numberOfItems;
	}
	
	public synchronized double getTotal() {
		double amount = 0.0;
		
		for(Iterator i = getItems().iterator();i.hasNext(); ) {
			ShoppingCartItem item = (ShoppingCartItem)i.next();
			BookDetails bookDetails = (BookDetails) item.getItem();
			
			amount+=item.getQuantity() * bookDetails.getPrice();
		}
		
		return roundOff(amount);
	}
	
	private double roundOff(double x) {
		long val = Math.round(x*100);  //cents
		return val/100.0;
	}
	
	public synchronized void clear() {
		items.clear();
		numberOfItems =0;
	}
}

⌨️ 快捷键说明

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