Hazelcast的map和jdk的map返回值不同

Idea 发布于 2014/02/26 10:23
阅读 658
收藏 0

Config cfg = new FileSystemXmlConfig("conf/hazelcast.xml");
  HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);

  Map<Integer, Map<String, String>> mapCustomers = instance
    .getMap("customers");

  Map<String, String> map2 = new HashMap<String, String>();
  map2.put("1", "2");
  map2.put("2", "2");
  mapCustomers.put(9, map2);
  if (mapCustomers.containsKey(9)) {
   mapCustomers.get(9).put("3", "2");
  }
  System.out.println(mapCustomers.get(9).size());--return 2

  ------------------------------------------------------------------------------------------------

  Map<Integer, Map<String, String>> mapCustomers2 = new HashMap<Integer, Map<String, String>>();
  Map<String, String> map3 = new HashMap<String, String>();
  map3.put("1", "2");
  map3.put("2", "2");
  mapCustomers2.put(9, map3);
  if (mapCustomers2.containsKey(9)) {
   mapCustomers2.get(9).put("3", "2");
  }
  System.out.println(mapCustomers2.get(9).size());--return 3;

---------------------------------------------------------------------

返回值不同,什么原因?

加载中
0
小兵ivan

    HazelcastInstance hz = Hazelcast.newHazelcastInstance();
    Map<Integer, Map<String, String>> mapCustomers = hz.getMap("customers");
    Map<String, String> map2 = new HashMap<String, String>();
    map2.put("cooboo", "cooboo");
      map2.put("java", "java");
    mapCustomers.put(9, map2);
    if (mapCustomers.containsKey(9)) {
        System.out.println("cooboo.........");
        mapCustomers.get(9).put("hazelcast", "hazelcast");
    }
      System.out.println("map:"+mapCustomers.get(9).size());
      System.out.println("java:"+mapCustomers.get(9).get("java"));
      System.out.println("cooboo:"+mapCustomers.get(9).get("cooboo"));
      System.out.println("hazelcast:"+mapCustomers.get(9).get("hazelcast"));
      
/*
   结果:
      cooboo.........
      map:2
      java:java
      cooboo:cooboo
      hazelcast:null
    */
      
      HazelcastInstance hz = Hazelcast.newHazelcastInstance();
        Map<Integer, Map<String, String>> mapCustomers = hz.getMap("customers");
        Map<String, String> map2 = new HashMap<String, String>();
            map2.put("cooboo", "cooboo");
          map2.put("java", "java");
        mapCustomers.put(9, map2);
        if (mapCustomers.containsKey(9)) {
            System.out.println("cooboo.........");
            Map<String, String> map3 =    mapCustomers.get(9);
                    map3.put("hazelcast", "hazelcast");
            mapCustomers.put(9, map3);
        }
          System.out.println("map:"+mapCustomers.get(9).size());
          System.out.println("java:"+mapCustomers.get(9).get("java"));
          System.out.println("cooboo:"+mapCustomers.get(9).get("cooboo"));
          System.out.println("hazelcast:"+mapCustomers.get(9).get("hazelcast"));
          
          
        /* 结果:
         *  cooboo.........
          map:3
          java:java
          cooboo:cooboo
          hazelcast:hazelcast*/
    
          以上的结果分析:
          hazelcast 不允许这样操作吧,所以 第三个值才没有写成功!
          mapCustomers.get(9).put("hazelcast", "hazelcast");
            我也是刚刚学习的,多多关照!

Idea
Idea
你说的对,这个问题已解决……
0
小兵ivan
对了 ,你目前在学习这吗? 不能不交流一下, 我Q 383680871
0
雪之舞
hazelcast不允许这么修改
返回顶部
顶部