首页编程java编程java购物车代码,购物车功能的实现代码

java购物车代码,购物车功能的实现代码

编程之家2026-05-171065次浏览

大家好,今天小编来为大家解答java购物车代码这个问题,购物车功能的实现代码很多人还不知道,现在让我们一起来看看吧!

java购物车代码,购物车功能的实现代码

java 如何编写购物车

用Vector或者是HashMap去装

<下面有部分代码你去看吧>

package com.aptech.restrant.DAO;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

java购物车代码,购物车功能的实现代码

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{

java购物车代码,购物车功能的实现代码

private Connection conn;

public CartModel(Connection conn){

this.conn=conn;

}

/**

*得到订餐列表

*

*@return

*/

public List changeToList(Map carts){

//将Set中元素转换成数组,以便使用循环进行遍历

Object[] foodItems= carts.keySet().toArray();

//定义double变量total,用于存放购物车内餐品总价格

double total= 0;

List list= new ArrayList();

//循环遍历购物车内餐品,并显示各个餐品的餐品名称,价格,数量

for(int i= 0; i< foodItems.length; i++){

//从Map对象cart中取出第i个餐品,放入cartItem中

CartItemBean cartItem=(CartItemBean) carts

.get((String) foodItems[i]);

//从cartItem中取出FoodBean对象

FoodBean food1= cartItem.getFoodBean();

//定义int类型变量quantity,用于表示购物车中单个餐品的数量

int quantity= cartItem.getQuantity();

//定义double变量price,表示餐品单价

double price= food1.getFoodPrice();

//定义double变量,subtotal表示单个餐品总价

double subtotal= quantity* price;

////计算购物车内餐品总价格

total+= subtotal;

cartItem.setSubtotal(subtotal);

cartItem.setTotal(total);

list.add(cartItem);

}

return list;

}

/**

*增加订餐

*/

public Map add(Map cart, String foodID){

//购物车为空

if(cart== null){

cart= new HashMap();

}

FoodModel fd= new FoodModel(conn);

FoodBean food= fd.findFoodById(foodID);

//判断购物车是否放东西(第一次点餐)

if(cart.isEmpty()){

CartItemBean cartBean= new CartItemBean(food, 1);

cart.put(foodID, cartBean);

} else{

//判断当前菜是否在购物车中,false表示当前菜没有被点过。。

boolean flag= false;

//得到键的集合

Set set= cart.keySet();

//遍历集合

Object[] obj= set.toArray();

for(int i= 0; i< obj.length; i++){

Object object= obj[i];

//如果购物车已经存在当前菜,数量+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){

//把当前菜放到购物车里面

CartItemBean cartBean= new CartItemBean(food, 1);

cart.put(foodID, cartBean);

}

}

return cart;

}

/**

*取消订餐

*/

public Map remove(Map cart, String foodID){

cart.remove(foodID);

return cart;

}

/**

*更新购物车信息

*

*@param cart

*@param foodID

*@return

*/

public Map<String, CartItemBean> update(Map cart, String foodID,

boolean isAddorRemove){

Map map;

if(isAddorRemove){

map= add(cart, foodID);

} else{

map= remove(cart, foodID);

}

return map;

}

}

编程java 关于购物车

点击数量进入购物车页面,这个应该好做吧,跳动一个Action转发到购物车页面

下面是我的图书购物车(自己写的)

package com.jc.ts.services;

import java.math.BigDecimal;

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import com.jc.ts.entity.BookCar;

import com.jc.ts.entity.BookInfo;

/**

*该类提供购物车的操作

**/

public class CartItemsService{

private Map<String,BookCar> itemMap=null;//购物车Map集合

private Collection<BookCar> items;//购物车项

public CartItemsService()

{

itemMap=new HashMap<String,BookCar>();

}

public Collection<BookCar> getItems(){

return items;

}

public void setItems(Collection<BookCar> items){

this.items= items;

}

public Map<String, BookCar> getItemMap(){

return itemMap;

}

public void setItemMap(Map<String, BookCar> itemMap){

this.itemMap= itemMap;

}

public int getBookCarSize()

{

return itemMap.size();

}

public boolean containById(String bookid)

{

return itemMap.containsKey(bookid);

}

public void addBookCarItems(BookInfo bookInfo)

{

if(bookInfo!=null)

{

BookCar bookCar=(BookCar)itemMap.get(bookInfo.getBid());

if(bookCar==null)

{

bookCar=new BookCar();

bookCar.setBookinfo(bookInfo);

bookCar.increaseQuantity();

itemMap.put(bookInfo.getBid(),bookCar);

items=itemMap.values();

}else{

bookCar.increaseQuantity();

}

}

}

public BookInfo removeCarItem(String bookid)

{

BookCar bookCar=itemMap.remove(bookid);

if(bookCar==null)

{

return null;

}

items=itemMap.values();

return bookCar.getBookinfo();

}

public BigDecimal getBookCarTotal()//获得总金额

{

BigDecimal carTotal=new BigDecimal("0.00");

Iterator<BookCar> iterator=this.getAllCartItems();

while(iterator.hasNext())

{

BookCar bookCar=iterator.next();

BigDecimal carPrice=bookCar.getBookinfo().getBprice();

BigDecimal quantity=new BigDecimal(String.valueOf(bookCar.getQuantity()));

carTotal=carTotal.add(carPrice.multiply(quantity));

}

return carTotal;

}

public Iterator<BookCar> getAllCartItems(){

return itemMap.values().iterator();

}

public void increaseQuantityById(String bookid)

{

BookCar bookCar=itemMap.get(bookid);

if(bookCar!=null)

{

bookCar.increaseQuantity();

}

}

public void setQuantityById(String bookid,int quantity)//根据图书ID增加数量

{

BookCar bookCar=itemMap.get(bookid);

if(bookCar!=null)

{

bookCar.setQuantity(quantity);

}

}

public void clear(){

itemMap.clear();

}

}

修改后传入这个方法就可以了setQuantityById()

★★★注意购物车一定要用Map不能用List或ArrayList

因为购物车是顾客频繁操作的功能

Map在取值或删除值的效率比List或ArrayList要高的多

它基本不需要时间,而List或ArrayList还要遍历。。。。。。

希望对你有帮助!!

java 里面编写网上购物车的问题

有两个地方错了:

主要的一个错误是BookDetail类不存在,而你在ShopCar

类中引用了BookDetail,得写一个这样的类才行。

第二个错误的地方为你在类中使用了包,如果使用包的话就不能像一般的类那样直接使用javac类名.java这样的形式编译了。

而要使用 javac-d.类名.java才行,其中的-d.的意思是把输出的.class文件放以包名称的形式到当前文件夹下,当然你也可以输入其它路径也是可以的。

运行的话使用java包名+类名就可以了,其中是以.分开包和类名称的。

看一下javac的帮助和java的帮助,里面说的很明白的。

编译的时候使用javac-d.类名.java

运行的时候 java包名.类名

注意如果包里又有子包的话运行的时候包与子包使用.分隔开来

关于java购物车代码,购物车功能的实现代码的介绍到此结束,希望对大家有所帮助。

阿里云php?阿里云域名注册ai需要学什么编程语言 ai自学免费教程