Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-在删除某些元素的同时引用arraylist中的元素_Java_Generics_Arraylist_Stack - Fatal编程技术网

java-在删除某些元素的同时引用arraylist中的元素

java-在删除某些元素的同时引用arraylist中的元素,java,generics,arraylist,stack,Java,Generics,Arraylist,Stack,我有一个for循环遍历arrayList中的每个元素,对它们执行someMethod(),具体取决于该方法的结果,我希望保留该元素或从列表中删除该元素。例如: int returnResult; for (int i=0;i<4;i++){ returnResult = someMethod(arrayList.get(i)); if (returnResult == -1){ arrayList.remove(i); } } int返回结果; 对

我有一个for循环遍历arrayList中的每个元素,对它们执行someMethod(),具体取决于该方法的结果,我希望保留该元素或从列表中删除该元素。例如:

int returnResult;
for (int i=0;i<4;i++){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
    }
}
int返回结果;

对于(inti=0;i是的,它确实存在。为了避免这个问题,您可以反向迭代数组

int returnResult;
for (int i=3;i>=0;i--){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
    }
}

这会从末尾弹出它们,不会影响剩下的元素。

是的,会。为了避免这种情况,您可以反向遍历数组

int returnResult;
for (int i=3;i>=0;i--){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
    }
}

这会从末尾弹出它们,不会影响剩下的元素。

是的,会。为了避免这种情况,您可以反向遍历数组

int returnResult;
for (int i=3;i>=0;i--){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
    }
}

这会从末尾弹出它们,不会影响剩下的元素。

是的,会。为了避免这种情况,您可以反向遍历数组

int returnResult;
for (int i=3;i>=0;i--){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
    }
}

这会从末尾弹出它们,不会影响剩下的元素。

用以下内容替换代码:

int returnResult, limit = 4;
for (int i=0; i < limit; i++){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
        limit--;
    }
}
int returnResult,限制=4;
对于(int i=0;i
用以下代码替换您的代码:

int returnResult, limit = 4;
for (int i=0; i < limit; i++){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
        limit--;
    }
}
int returnResult,限制=4;
对于(int i=0;i
用以下代码替换您的代码:

int returnResult, limit = 4;
for (int i=0; i < limit; i++){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
        limit--;
    }
}
int returnResult,限制=4;
对于(int i=0;i
用以下代码替换您的代码:

int returnResult, limit = 4;
for (int i=0; i < limit; i++){
    returnResult = someMethod(arrayList.get(i));
    if (returnResult == -1){
        arrayList.remove(i);
        limit--;
    }
}
int returnResult,限制=4;
对于(int i=0;i
yes,当您调用
remove(…)时,它会减小大小
method。您的程序将意外结束,但实际上这是预期的结果。太棒了,谢谢,您知道是否有办法解决此问题吗?如果有类似于每个常用方法的文档,那就太好了……哦,这里是:是的,当您调用
remove(…)时,它会减小大小
method。您的程序将意外结束,但实际上这是预期的结果。太棒了,谢谢,您知道是否有办法解决此问题吗?如果有类似于每个常用方法的文档,那就太好了……哦,这里是:是的,当您调用
remove(…)时,它会减小大小
method。您的程序将意外结束,但实际上这是预期的结果。太棒了,谢谢,您知道是否有办法解决此问题吗?如果有类似于每个常用方法的文档,那就太好了……哦,这里是:是的,当您调用
remove(…)时,它会减小大小
method。您的程序将意外结束,但实际上这是预期的结果。太棒了,谢谢,您知道有没有办法解决这个问题吗?如果能为每个常用方法提供类似文档的内容,那就太好了……哦,这是: