日期:2014-05-20  浏览次数:21417 次

HashMap无法显示。。show()
package max.dao;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Iterator;

import max.model.bean;

import com.sun.tools.classfile.Opcode.Set;
import com.sun.xml.internal.xsom.impl.scd.Iterators.Map;


public class sqlbean {

private HashMap<Integer, bean> itemMap;
public sqlbean()
{
itemMap = new HashMap<Integer, bean>();

}

public void put(Integer id,bean tempi){

itemMap.put(id, tempi);



}

public void delete(Integer id){

itemMap.remove(id);


}





public void clear() {
itemMap.clear();

}





public void show() {








Iterator<Integer> it = itemMap.keySet().iterator();

while(it.hasNext()) {
Integer key = it.next();
 
 
 
 
 
System.out.println("<tr>");
System.out.println("<td bgcolor='#f4f5fd' colspan='14' height='5'></td>");
System.out.println("</tr>");
System.out.println("<tr>");
System.out.println("<td align='right' bgcolor='#ffffff'><input type='checkbox' name='<%=r %>'onClick='changeTRbg(this,'trBG<%=r %>>')'/></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= year %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= sea %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= bre%></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= Sty %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= Sty %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= yhcolo %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= hfcolor %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= colord %></td>");
System.out.println("<td align='right' bgcolor='#ffffff'><%= Rhy %></td>");
System.out.println("</tr>");
 
 

}




}













}

------解决方案--------------------
Java code


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();
    }

}