【问题标题】:Processing: assign a value to each object in an array?处理:为数组中的每个对象赋值?
【发布时间】:2014-01-02 00:05:43
【问题描述】:

抱歉,这可能是一个愚蠢的问题。我对编码有点陌生,我正在使用基于 Java 的 Processing。

我的主程序中有一个包含 5 个矩形对象的数组

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

显示时,我从我的 Portals 类中调用此方法

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

xLoc 和 yLoc 是随机确定的。您将如何为数组中的每个对象分配一个数字(如标识),以便我可以引用该特定矩形的位置以及将其放在我的代码中的什么位置?

【问题讨论】:

  • 可能会显示更多代码(例如您的 Portals 类)并准确说明您希望完成的工作
  • 真的不是那样工作的。看看我的回答,看看有没有帮助。如果您想要使用 Map 的解决方案,我可以向您展示,但如果您仍处于起步阶段,我不会立即深入研究。

标签: arrays object variable-assignment


【解决方案1】:

您可以在类中创建一个可识别的文件。喜欢:

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。但这可能比你的知识更高级,所以我不会给出代码。但这是另一个建议。

编辑:使用地图

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");

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2020-09-06
    • 2019-03-14
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多