日期:2014-05-20 浏览次数:21647 次
import java.util.*;
public class TestShoppingCar {
public static void main(String[] args) {
ShoppingCar s = new ShoppingCar();
s.buy(1);// 购买商品编号1的商品
s.buy(1);//其实放不进去,因为id是区分每一个商品,而不是每一类商品
s.buy(2);// 购买商品编号2的商品
s.buy(3);// 购买商品编号3的商品
s.buy(1);//其实放不进去,因为id是区分每一个商品,而不是每一类商品
//s.show();//这句没任何用处
Iterator<Integer> it = s.show();
while (it.hasNext()) {
Integer key = it.next();
Bean bean = s.sqlbean.get(key);
System.out.println(bean);
}
}
}
class ShoppingCar {
Sqlbean sqlbean = new Sqlbean();
public void buy(int id) {
if(sqlbean.containsKey(id)) {
System.out.println("id为" +id +"的商品已经存在");;//每一个商品都有唯一的id,如果商品id已经存在,,就再也放不进去了
return;
}
sqlbean.put(id,Bean.createBean(id));
}
public Iterator<Integer> show() {
return sqlbean.show();
}
}
class Bean {
private int id = 0;
private String otherInfo;
public Bean(int id) {
this.id = id;
}
public int getId() {
return id;
}
public static Bean createBean(int id) {
return new Bean(id);
}
public String toString() {//重写toString方法,方便打印
return "id = " + id;
}
}
class Sqlbean {
private HashMap<Integer, Bean> itemMap;//假设每一个商品一个id,及每一个id代表一个商品
public Sqlbean() {//此时 健id 的值 为Bean类商品 ,
itemMap = new HashMap<Integer, Bean>();
}
public void put(Integer id, Bean tempi) {
if(itemMap.containsKey(id)) {
System.out.println(tempi +"的商品已经存在");;//每一个商品都有唯一的id,如果商品id已经存在,,就再也放不进去了
return;
}
itemMap.put(id,tempi);
}
public Bean get(int id) {//增加这个方法,因为itemMap是private,否则别的类无法访问Mapz中的Bean对象
return itemMap.containsKey(id)?itemMap.get(id):null;
}
public boolean containsKey(int id) {
return itemMap.containsKey(id);
}
public void delete(Integer id) {
itemMap.remove(id);
}
public void clear() {
itemMap.clear();
}
public Iterator show() {//返回值应该为Iterator,否则此函数形同虚设
return itemMap.keySet().iterator();
}
}