2013-11-20 5 views
1

У меня вопрос о ArrayList внутри Arraylist. Речь идет о нескольких мирах с несколькими икру. Я хочу проверить каждый мир один за другим и сохранить все порождения этого мира в ArrayList. В конце у меня есть ArrayList с каждой позицией (каждая позиция - мир) другой Arraylist, содержащий икру этого мира.Java ArrayList в ArrayList

Как я могу это сделать, если не знаю, сколько икронов или миров там будет? Я думал об этом:

Глядя только один мир:

public ArrayList<Location> Spawnpoints = new ArrayList<Location>(); 
//ArrayList containing all the spawns of this world). 

Глядя на каждую икру в мире

Spawnpoints.add(new Location(spawnX , spawnY , spawnZ)); 
//Adding every spawn to the ArrayList spawnpoints. 

Так после того, как я смотрел на мир, я заполнил ArrayList спавнпоинты с местоположениями. Теперь я хочу добавить регенерационные объекты ArrayList в новые миры ArrayList. После этого я повторю приведенный выше код для следующего мира, пока у меня не было всех миров.

EDIT. Я думаю, что он работает. У меня проблемы с получением размера списка, когда у меня есть только имя.

Итак, допустим, я сделал это: allSpawnpoints.put("yourWorld",Spawnpoints); Теперь я хочу получить размер списка Spawnpoints для строки yourWorld. Любая идея, как я могу это сделать?

Я пробовал: int number = allSpawnpoints.get("yourWorld").size(); похоже, что это не работает.

Я надеюсь, что кто-то может мне помочь! Спасибо за прочтение. С уважением.

+0

'allSpawnpoints.get (" yourWorld ")' будет возвращать 'Список ' ..so его как 'Список loc = allSpawnpoints.get (" yourWorld "); loc.size() ' – user2720864

ответ

3

Вместо ArrayList или World объектов попробуйте использовать Map из World в List из Location. Что-то вроде этого:

Map<World,List<Location>> allSpawnpoints = new HashMap<World,List<Location>>(); 

Затем, после того, как вы создали свой список спавнпоинты для World положить его в Map так:

allSpawnpoints.put(yourWorld,Spawnpoints); 

..., а затем перейти на следующий мир.

Я также предлагаю переименовать Spawnpoints как spawnPoints.

+0

Спасибо, я сделаю это! – user3013897

+0

Я добавил кое-что к своему вопросу, вы можете заглянуть в него? – user3013897

+0

вам нужно выполнить итерацию через объект Map, тогда вы сможете получить каждый ключ, значение которого вы можете сохранить в списке, а затем подсчитать размер. – user2720864

Смежные вопросы