2013-12-14 2 views
0

Извините, это, наверное, немой вопрос. Я новичок в кодировании, и я использую Processing, основанный на Java.Обработка: присваивать значение каждому объекту в массиве?

У меня есть массив из 5 объектов прямоугольника в моей основной программе

for (int i = 0; i < portals.length; i++) 
    { 
    portals[i] = new Portals(); 
    } 

при отображении, я называю этот метод из моего класса Portals

void display() 
    { 
    rectMode(CENTER); 
    rect(xLoc, yLoc, rad, 30); 
    } 

xLoc и yL определяются случайным образом. Как бы вы хотели назначить число (например, идентификатор) для каждого объекта в массиве, чтобы я мог ссылаться на местоположение определенных прямоугольников и где бы я его поместил в свой код?

+0

Может показать еще некоторый код (например, ваш класс Portals) и объяснить, что именно вы хотите достичь –

+0

ли на самом деле не работает так. Взгляните на мой ответ, посмотрите, поможет ли это. Если вы хотите использовать решение с помощью «Карты», я могу показать вам, но если вы все еще начинаете, я пока не буду вникать в него. –

ответ

0

У вас может быть поданная в классе, которая делает ее идентифицируемой. Как:

public class Portals { 
    int xLoc; 
    int yLoc; 
    String name; 

    ... 

    public Portals(String name){ 
     this.name = name; 
    } 

    public String getName(){ 
     return name; 
    } 
} 

Тогда вы можете попытаться получить доступ по имени в массиве

for (int i = 0; i < portals.length; i++) 
{ 
    portals[i] = new Portals("Name"); 
} 

for (Portals p : portals){ 
    if ("Name".equals(p.getname()) { 
     // do somthing 
    } 
} 

Или вы можете использовать Map. Но это может быть более продвинутым, чем ваши знания, поэтому я не буду давать код. Но это еще одно предложение.

Edit: с картой

Map<String, Portals> map = new HashMap<String, Portals>(); 

      Key    Value 
map.put("nameForPortal", new Portals()); 
map.put("anotherNameForPortal", new Portals()); 

// To access the portal, you can get by the key 

Portals p = map.get("nameForPortal"); 
Смежные вопросы