2016-05-02 3 views
0
public static HashMap<Integer, Point> fillCellsCreatures = new HashMap<Integer, Point>(); 

for(int i = 0; i < 4; i++){ 
     Creature cre = new Creature(); 
     cre.x = ((int)(Math.random() * ((30 - 10) +1))); 
     cre.y = ((int)(Math.random() * ((30 - 10) +1))); 
     cre.energy_level = 10; 
     //fillCellsCreatures.add(new Point(cre.x, cre.y)); 
     fillCellsCreatures.put(cre.energy_level, new Point(cre.x, cre.y)); 
    } 

Код выше, я пытаюсь добавить к hashmap, который содержит int как ключ и Point как значение. Когда я добавляю к хэшмапу через цикл for, я вижу, что постоянно переписываюсь в одной позиции и не перехожу к следующей позиции, чтобы добавить новое значение. Может кто-то, пожалуйста, помогите уточнить, что я делаю неправильно, и указать мне в правильном направлении.Добавление в hashmap

Приветствия

+0

Каждый раз, когда вы использовали тот же ключ (cre.energy_level = 10;). Так как всегда заменяйте старый на новый. –

+0

Cheers Geeth. Работаю сейчас. – Sam

ответ

0

Если вам необходимо изменить использовать следующий код,

public static HashMap<Integer, Point> fillCellsCreatures = new HashMap<Integer, Point>(); 

for(int i = 0; i < 4; i++){ 
     Creature cre = new Creature(); 
     cre.x = ((int)(Math.random() * ((30 - 10) +1))); 
     cre.y = ((int)(Math.random() * ((30 - 10) +1))); 
     cre.energy_level = 10 * i+1; 
     //fillCellsCreatures.add(new Point(cre.x, cre.y)); 
     fillCellsCreatures.put(cre.energy_level, new Point(cre.x, cre.y)); 
    } 
Смежные вопросы