Processing 处理过程中从数组中删除对象的最佳方法
我真的希望Processing能够使用push和pop方法来处理数组,但既然没有,我就只能尝试找出在数组中特定位置移除对象的最佳方法。我相信这对很多人来说都是最基本的,但我需要一些帮助,而我还没有通过浏览处理参考来了解更多 我认为这无关紧要,但供您参考,以下是我最初用于添加对象的代码:Processing 处理过程中从数组中删除对象的最佳方法,processing,Processing,我真的希望Processing能够使用push和pop方法来处理数组,但既然没有,我就只能尝试找出在数组中特定位置移除对象的最佳方法。我相信这对很多人来说都是最基本的,但我需要一些帮助,而我还没有通过浏览处理参考来了解更多 我认为这无关紧要,但供您参考,以下是我最初用于添加对象的代码: Flower[] flowers = new Flower[0]; for (int i=0; i < 20; i++) { Flower fl = new Flower(); flowe
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;
}
Flower[]flowers=新花[0];
对于(int i=0;i<20;i++)
{
花fl=新花();
花=(花[])展开(花,花.length+1);
花[flowers.length-1]=fl;
}
对于这个问题,假设我想从位置15移除一个对象。谢谢,伙计们。我认为你们最好的选择是使用arraycopy。您可以对src和dest使用相同的数组。类似以下内容(未经测试):
您可能还想考虑使用比普通数组更可用的方法。
您可以使用myArrayList删除第十五个元素。删除(14)我知道这个问题很久以前就被问到了,但是似乎很多人还在寻找答案。我刚刚写了这个。我对它进行了一些测试,它似乎按照我希望的方式运行
var yourArr = [1, 2, 3, 4]; // use your array here
var removeIndex = 1; // item to get rid of
var explode = function(array, index) { // create the function
var frontSet = subset(array, 0, index - 1); // get the front
var endSet = subset(array, index , array.length - 1); // get the end
yourArr = concat(frontSet, endSet); // join them
};
explode(yourArr, removeIndex); // call it on your array
这是一种方式。我想你也可以在数组中循环。类似于
var yourArr = [1, 2, 3, 4];
var removeIndex = 2;
var newArr = [];
for(var i = 0; i < yourArr.length; i++) {
if(i < removeIndex) {
append(newArr, yourArr[i]);
} else if(i > removeIndex) {
append(newArr, yourArr[i]);
}
}
yourArr = newArr;
var yourArr=[1,2,3,4];
var removeIndex=2;
var newArr=[];
对于(变量i=0;iremoveIndex){
附加(newArr,yourar[i]);
}
}
yourArr=newArr;
。。。我认为这也应该有效。希望这能帮助任何需要它的人。我做了一个功能,基本上将要删除的索引切换到最后一个,然后将其缩短
int[] removeByIndex(int[] array, int index) {
int index2 = array.length-1;
int old = array[index];
array[index] = array[index2];
array[index2] = old;
array = shorten(array);
return array;
}
yourarray = removeByIndex(yourarray , arrayindex);
希望这有帮助 String[]myArray={“0”、“1”、“2”、“3”、“4”、“5”、“6”};
String[] myArray = { "0", "1", "2", "3", "4", "5", "6"};
String[] RemoveItem(String[] arr, int n) {
if (n < arr.length-1) {
arrayCopy(subset(arr, n+1), 0, arr, n, arr.length-1-n);
}
arr = shorten(arr);
return arr;
}
String[]removietem(String[]arr,int n){
如果(n
我发现这是解决问题的最简单方法。这对对象数组有效吗?我得到“无法对数组类型filename.SomeClass[]调用remove(int)”请注意,处理使用Java语法。此答案使用JavaScript语法,因此它不是一个真正有效的答案。虽然此代码可能会回答此问题,但提供有关此代码回答此问题的原因和/或方式的附加上下文可提高其长期价值。
String[] myArray = { "0", "1", "2", "3", "4", "5", "6"};
String[] RemoveItem(String[] arr, int n) {
if (n < arr.length-1) {
arrayCopy(subset(arr, n+1), 0, arr, n, arr.length-1-n);
}
arr = shorten(arr);
return arr;
}