日期:2014-05-20 浏览次数:21460 次
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(); } }