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);
但我想我完全错了,我希望得到一些提示和进一步的解释。
感谢您的帮助。
您错过了 Map
的 Integer
类型参数。
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
我想知道如何向其中添加一些数据:
Map<String, Queue<Map<Integer, MyObject>>> map1 = new HashMap<String, Queue<Map<Integer, MyObject>>>();
我一直在尝试类似的事情:
map1.put(login, new ArrayBlockingQueue<Map<MyObject>>(500, true);
但我想我完全错了,我希望得到一些提示和进一步的解释。 感谢您的帮助。
您错过了 Map
的 Integer
类型参数。
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