我真的希望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);