我的hashMap 用的类名做的key 如hashMap.put("ClassOne",object);
合适当我遍历map 打印key的时候得到得不是原本输入的"ClassOne"
而是该类的完整路径 如"ClassOne =[cn.kk.yy.mm.view.ClassOne]"
觉的很怪异请问为什么;

解决方案 »

  1.   

    不是很明? 能否说清楚一点! 
    objMap.get("ClassOne") 是获得你存的 object!
      

  2.   

    我在key里存的是一个类名(string 类型的)
    当我打印这个类的时候却打印的是 我输入的类名的 路径
      

  3.   

    当我打印这个key的时候却打印的是 我输入的类名的 路径
      

  4.   

    我想知道你是怎么打印key的?
    是不是根据key输出他对应的值吗?
    把代码贴出来看看。
      

  5.   


    public static void main(String args[]){
    HashMap hm = new HashMap();
    hm.put("String", 123);
    System.out.println(hm.get("String"));

    Iterator it = hm.keySet().iterator();
    while(it.hasNext()){
    System.out.println(it.next());
    }
    }这是我的测试代码 打印出来的是String 而不是java.lang.String啊
      

  6.   

    不会吧?我经常用 HashMap 封装查询条件都没问题啊
      

  7.   

         HashMap hashMap = new HashMap();
         hashMap.put("Date",123456789); 
         System.out.println(hashMap.keySet());我测试了,正常运行……
    楼主的意思是?
      

  8.   

    Iterator i = map.entrySet().iterator();
    String type = i.next().toString();
    我这样打印的
    map封装时这样
    put("Lr6",new Object);打印后是这样Lr6=[cn.eastgf.gafis.fpt.fptLogicRecord.LR6@ec16a4]其中Lr6是我自定义的一个类大家也看见了,我将R换成了小写.
      

  9.   

    你调用的entrySet()返回的是映射关系的集合
    keySet是返回key的集合 而values()返回值的集合
      

  10.   

    同16楼观点。lz的用法错误,keyset才是key的集合。
      

  11.   


    还是这个问题这个是我实际的代码Iterator i = map.entrySet().iterator(); 
    String type = i.next().toString(); 
    我这样打印的 
    map封装时这样 
    put("Lr6", List); 打印后是这样 Lr6=[cn.eastgf.gafis.fpt.fptLogicRecord.LR6@ec16a4] 
    <cn.eastgf.gafis.fpt.fptLogicRecord.LR6>这个是我的完整的路径名请问为什么  put("Lr6", List);  这里我只写了该类的名字而以 并且"Lr6" 这个R我特意改成了小写.怎么还能映射到这个类  怎么映射的 
      

  12.   

    String type = i.next().toString();实际上是你的一条映射关系Entry包含Key和Value,看一下JDK中HashMap对Entry的toString写法: public String toString() {
        return key + "=" + value;
    }Lr6=value这里的value就是你的List,看一下List中的toString实现就知道怎么回事了
      

  13.   

    非常感谢. 换了新IDE都没有看JDK源码的习惯了 
    确实是这样的 LR6 我是用泛形备置到List中的
    也就是说,我再key那里写什么都会打印出形同的语句.
      

  14.   

    非常感谢. 换了新IDE都没有看JDK源码的习惯了 
    确实是这样的 LR6 我是用泛形备置到List中的
    也就是说,我再key那里写什么都会打印出形同的语句.