Java 访问队列中的地图<Map>

Java accessing to Map in Queue<Map>

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

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

我一直在尝试类似的事情:

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

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

您错过了 MapInteger 类型参数。

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

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

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

试试这样的东西:

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

发现您在地图中缺少整数类型。如果你想为 Queue 添加值,那么你可以这样做:

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