看不到HashMap的内容

时间:2011-05-17 20:03:05

标签: java hashmap

输出到达flag2,但我看不到HashMap中的内容。代码是:

public class traffic_analysis {


static HashMap<InetAddress,Integer> mp=new HashMap<InetAddress, Integer>();


    static void SrcCnt(InetAddress src_ip) {
        InetAddress SourceIP = src_ip;
        System.out.println(SourceIP);

        if (mp.get(SourceIP) == null){
            mp.put(SourceIP, 0);
            System.out.println("----MPIKE----");
        }else {
            mp.put(SourceIP,mp.get(SourceIP)+1);
            System.out.println("----MPIKE XANA----");
        }

        System.out.println(mp.toString());
    }


static void PrintMap() {
    System.out.println("----EIMAI EDW----");

    Iterator iterator = mp.keySet().iterator();

    while (iterator.hasNext()) {
         System.out.println("----flag----");
       String key = iterator.next().toString();
       System.out.println("----flag2----");
       String value = mp.get(key).toString();
       System.out.println("----flag3----");

       System.out.println(key + "blabla " + value);
    }
}


}

问题出在哪里?

2 个答案:

答案 0 :(得分:4)

您在实际密钥上调用toString。当您尝试使用字符串获取它时,将失败。试试这个:

InetAddress key = iterator.next();
System.out.println("----flag2----");
String value = mp.get(key).toString();
System.out.println("----flag3----");

答案 1 :(得分:0)

对象的toString()方法与将对象转换为String的方式不同。

String key = iterator.next()而不是String key = iterator.next().toString()呢?