建一個(gè)靜態(tài)的Map集合 做購(gòu)物車的集合
網(wǎng)站的建設(shè)創(chuàng)新互聯(lián)建站專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為酒店設(shè)計(jì)等企業(yè)提供專業(yè)服務(wù)。
key值 放商品的ID value 放 商品對(duì)象.
對(duì)map 增刪改查就好了.. 結(jié)算完了 清空map
用Vector 或者是HashMap去裝
下面有部分代碼你去看吧
package com.aptech.restrant.DAO;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.sql.Connection;
import com.aptech.restrant.bean.CartItemBean;
import com.aptech.restrant.bean.FoodBean;
public class CartModel {
private Connection conn;
public CartModel(Connection conn) {
this.conn=conn;
}
/**
* 得到訂餐列表
*
* @return
*/
public List changeToList(Map carts) {
// 將Set中元素轉(zhuǎn)換成數(shù)組,以便使用循環(huán)進(jìn)行遍歷
Object[] foodItems = carts.keySet().toArray();
// 定義double變量total,用于存放購(gòu)物車內(nèi)餐品總價(jià)格
double total = 0;
List list = new ArrayList();
// 循環(huán)遍歷購(gòu)物車內(nèi)餐品,并顯示各個(gè)餐品的餐品名稱,價(jià)格,數(shù)量
for (int i = 0; i foodItems.length; i++) {
// 從Map對(duì)象cart中取出第i個(gè)餐品,放入cartItem中
CartItemBean cartItem = (CartItemBean) carts
.get((String) foodItems[i]);
// 從cartItem中取出FoodBean對(duì)象
FoodBean food1 = cartItem.getFoodBean();
// 定義int類型變量quantity,用于表示購(gòu)物車中單個(gè)餐品的數(shù)量
int quantity = cartItem.getQuantity();
// 定義double變量price,表示餐品單價(jià)
double price = food1.getFoodPrice();
// 定義double變量,subtotal表示單個(gè)餐品總價(jià)
double subtotal = quantity * price;
// // 計(jì)算購(gòu)物車內(nèi)餐品總價(jià)格
total += subtotal;
cartItem.setSubtotal(subtotal);
cartItem.setTotal(total);
list.add(cartItem);
}
return list;
}
/**
* 增加訂餐
*/
public Map add(Map cart, String foodID) {
// 購(gòu)物車為空
if (cart == null) {
cart = new HashMap();
}
FoodModel fd = new FoodModel(conn);
FoodBean food = fd.findFoodById(foodID);
// 判斷購(gòu)物車是否放東西(第一次點(diǎn)餐)
if (cart.isEmpty()) {
CartItemBean cartBean = new CartItemBean(food, 1);
cart.put(foodID, cartBean);
} else {
// 判斷當(dāng)前菜是否在購(gòu)物車中,false表示當(dāng)前菜沒有被點(diǎn)過。。
boolean flag = false;
// 得到鍵的集合
Set set = cart.keySet();
// 遍歷集合
Object[] obj = set.toArray();
for (int i = 0; i obj.length; i++) {
Object object = obj[i];
// 如果購(gòu)物車已經(jīng)存在當(dāng)前菜,數(shù)量+1
if (object.equals(foodID)) {
int quantity = ((CartItemBean) cart.get(object))
.getQuantity();
quantity += 1;
System.out.println(quantity);
((CartItemBean) cart.get(object)).setQuantity(quantity);
flag = true;
break;
}
}
if (flag == false) {
// 把當(dāng)前菜放到購(gòu)物車?yán)锩?/p>
CartItemBean cartBean = new CartItemBean(food, 1);
cart.put(foodID, cartBean);
}
}
return cart;
}
/**
* 取消訂餐
*/
public Map remove(Map cart, String foodID) {
cart.remove(foodID);
return cart;
}
/**
* 更新購(gòu)物車信息
*
* @param cart
* @param foodID
* @return
*/
public MapString, CartItemBean update(Map cart, String foodID,
boolean isAddorRemove) {
Map map;
if (isAddorRemove) {
map = add(cart, foodID);
} else {
map = remove(cart, foodID);
}
return map;
}
}
package?Test;
import?java.util.LinkedHashMap;
import?java.util.Map;
import?java.util.Map.Entry;
import?java.util.Scanner;
public?class?Test?{
public?static?void?main(String[]?args)?{
init();//初始化
MapString,String?map?=?new?LinkedHashMap();
while(true){
Scanner?in=?new?Scanner(System.in);
map?=?buy(in,map);//選擇
System.out.println();
System.out.println("還要繼續(xù)購(gòu)物嗎?(Y/N)");
String?jx?=?in.nextLine();
if(jx.equals("N")){
break;
}
}
print(map);
}
public?static?void?print(MapString,?String?m){
System.out.println("\n\n\n******************");
System.out.println("???????購(gòu)物車清單");
Integer?hj?=?0;
for?(EntryString,?String?entry?:?m.entrySet())?{
String?key?=?entry.getKey();
String?value?=?entry.getValue();
if(key.equals("1")){
hj?+=?Integer.parseInt(value)*3;
System.out.println("哇哈哈純凈水:?"+value+"件,合計(jì):¥"+Integer.parseInt(value)*3);
}else?if(key.equals("2")){
hj?+=?Integer.parseInt(value)*5;
System.out.println("康師傅方便面:?"+value+"件,合計(jì):¥"+Integer.parseInt(value)*5);
}else?if(key.equals("3")){
hj?+=?Integer.parseInt(value)*4;
System.out.println("可口可樂:?"+value+"件,合計(jì):¥"+Integer.parseInt(value)*4);
}
}
System.out.println("合計(jì)金額:¥"+hj);
}
public?static?void?init(){
System.out.println("******************");
System.out.println("\t商品列表\n");
System.out.println("??????????????商品名稱????????????????價(jià)格");
System.out.println("1.???哇哈哈純凈水????????¥3");
System.out.println("2.???康師傅方便面????????¥5");
System.out.println("3.???可口可樂????????????????¥4");
System.out.println("******************");
}
public?static?MapString,String?buy(Scanner?scan,MapString,String?m){
System.out.print("請(qǐng)輸入編號(hào):");
String?bh?=?scan.nextLine();
System.out.print("請(qǐng)輸入購(gòu)買數(shù)量:");
String?num?=?scan.nextLine();
if(m.size()0??m.keySet().contains(bh)){
m.put(bh,(Integer.parseInt(bh)+Integer.parseInt(num))+"");
}else{
m.put(bh,?num);
}
return?m;
}
}