2015-02-24 2 views
0

Я пытаюсь выяснить, как я могу добавить некоторые данные в этом:Java доступ к карте в очереди <Map>

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

Я пытался что-то вроде, что:

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

Но я думаю, я совершенно неправ, и мне бы понравились некоторые советы и дальнейшие объяснения. Спасибо за помощь.

ответ

1

Попробуйте что-то вроде:

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

Убедитесь, что на карте отсутствует тип Integer. Если вы хотите добавить значение в очередь, вы можете сделать что-то вроде:

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

Вы пропустили параметр типа Integer для Map.

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

Если вы работаете с Java7 +, вы можете пропустить скрытые типовые параметры и полагаться на type-inference особенности Java, которая является полезной для получения читаемого кода:

map1.put(login, new ArrayBlockingQueue<>(500, true)); 
Смежные вопросы