java购物车代码,购物车功能的实现代码
大家好,今天小编来为大家解答java购物车代码这个问题,购物车功能的实现代码很多人还不知道,现在让我们一起来看看吧!
java 如何编写购物车
用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中元素转换成数组,以便使用循环进行遍历
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购物车代码,购物车功能的实现代码的介绍到此结束,希望对大家有所帮助。