【问题标题】:Java accessing to Map in Queue<Map>Java 访问 Queue<Map> 中的 Map
【发布时间】:2015-02-24 14:09:30
【问题描述】:

我想知道如何在其中添加一些数据:

Map<String, Queue<Map<Integer, MyObject>>> map1 = new HashMap<String, Queue<Map<Integer, MyObject>>>();

我一直在尝试这样的事情:

map1.put(login, new ArrayBlockingQueue<Map<MyObject>>(500, true);

但我想我完全错了,我希望得到一些提示和进一步的解释。 感谢您的帮助。

【问题讨论】:

    标签: java object dictionary queue


    【解决方案1】:

    您错过了 MapInteger 类型参数。

    map1.put(login, new ArrayBlockingQueue<Map<Integer, MyObject>>(500, true));
    

    如果您使用的是 Java7+,您实际上可以跳过隐式类型参数并依赖 Java 的 type-inference 功能,这有助于生成可读的代码:

    map1.put(login, new ArrayBlockingQueue<>(500, true));
    

    【讨论】:

      【解决方案2】:

      尝试类似:

      map1.put(login, new ArrayBlockingQueue<Map<Integer, MyObject>>(500, true));
                                                 ^^^^^^^                       ^(missing closing bracket)
      

      看到您在 map 中缺少 Integer 类型。如果您希望为 Queue 添加价值,则可以执行以下操作:

      Map<Integer, MyObject> myMap = ...;
      myMap.put(1, new MyObject...);
      map1.get(login).add(myMap);//or can use offer
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多