import java.util.*;
public class student
{

/**
 * Method main
 *
 *
 * @param args
 *
 */
 

public static void main(String[] args)
{
// TODO: Add your code here
       
        
        HashMap ha= new HashMap();
        
        ha.put("200502",new st("200502","王g刚",95));
        ha.put("200501",new st("200501","王小敏",95));
        Iterator it=ha.keySet().iterator();
        while(it.hasNext())
       {  
            st ss=(st)it.next();
            System.out.println(ss.name);
       }

}
class st
{
 int english=0;
 String name,number;
     st(String name,String number,int english)
 {
   this.name=name;
   this.number=number;
   this.english=english;
   }
}

解决方案 »

  1.   

    st ss=(st)it.next(); 老抱错啊  错在那里啊  ?
      

  2.   

    你调用的是keySet,返回是key的列表!
    改成 Iterator it=ha.values().iterator();
      

  3.   

    Iterator it=ha.keySet().iterator();得到的是key值.不是value值,也就是不是st类型
      

  4.   

    因为你得到的是他key的值,不是value的值,把 Iterator it=ha.keySet().iterator();
                                       改为: Iterator it=ha.values().iterator();
    就OK了
      

  5.   

    new st("200502","王g刚",95));
    st(String name,String number,int english)
    Iterator it=ha.values().iterator();
      

  6.   

    上面说的都对呀,可以这样改:Iterator it=ha.keySet().iterator();
            while(it.hasNext())
           {  
                String ss=(String)it.next();
                String name=((st)ha.get(ss)).name;
                System.out.println(name);
           }不过还是要说一句,你也够大意的!呵呵……
      

  7.   

    st ss=(st)it.next();
    改为
    st ss=(st)ha.get(it.next());