我真的希望Processing具有用于处理Array的push和pop方法,但是由于我没有这样做,因此我试图找出删除数组中特定位置的对象的最佳方法。我确信这对许多人来说是最基本的,但是我可以使用一些帮助,而且我无法通过浏览Processing参考来弄清楚。

我认为这无关紧要,但是供您参考的是我最初用来添加对象的代码:

Flower[] flowers = new Flower[0];

for (int i=0; i < 20; i++)
{
    Flower fl = new Flower();
    flowers = (Flower[]) expand(flowers, flowers.length + 1);
    flowers[flowers.length - 1] = fl;
}


为了解决这个问题,让我们假设我要从位置15中删除一个对象。谢谢,伙计们。

最佳答案

我认为您最好的选择是使用arraycopy。您可以对src和dest使用相同的数组。类似于以下内容(未经测试):

// move the end elements down 1
arraycopy(flowers, 16, flowers, 15, flowers.length-16);
// remove the extra copy of the last element
flowers = shorten(flowers);

10-04 23:26