Java 循环浏览列表并删除不起作用的内容

Java 循环浏览列表并删除不起作用的内容,java,Java,代码: List inDataList=generateInRepo.getInList(); for(int i=0;iIterator.remove()在迭代过程中是安全的: List<InData> inDataList= generateInRepo.getInList(); for(int i=0; i<inDataList.size();i++){ if(somecondition){ inDataList.remove(i); }

代码:

List inDataList=generateInRepo.getInList();
for(int i=0;i
Iterator.remove()
在迭代过程中是安全的:

List<InData> inDataList= generateInRepo.getInList();
for(int i=0; i<inDataList.size();i++){
    if(somecondition){
        inDataList.remove(i);
    }
}
List inDataList=generateInRepo.getInList();
迭代器it=inDataList.Iterator();
while(it.hasNext()){
InData data=it.next();
如果(某些条件){
it.remove();
}
}
迭代器。删除()
在迭代过程中是安全的:

List<InData> inDataList= generateInRepo.getInList();
for(int i=0; i<inDataList.size();i++){
    if(somecondition){
        inDataList.remove(i);
    }
}
List inDataList=generateInRepo.getInList();
迭代器it=inDataList.Iterator();
while(it.hasNext()){
InData data=it.next();
如果(某些条件){
it.remove();
}
}

将“良好”记录复制到另一个数组,然后替换原始记录。

将“良好”记录复制到另一个数组,然后替换原始记录。

代码的问题是删除后不应增加
i

从迭代列表中删除的技巧是向后迭代:

List<InData> inDataList = generateInRepo.getInList();

Iterator<InData> it = inDataList.iterator();
while (it.hasNext()) {
   InData data = it.next();
   if (some condition) {
     it.remove();
   }
}

for(int i=inDataList.size()-1;i代码的问题是删除后不应增加
i

从迭代列表中删除的技巧是向后迭代:

List<InData> inDataList = generateInRepo.getInList();

Iterator<InData> it = inDataList.iterator();
while (it.hasNext()) {
   InData data = it.next();
   if (some condition) {
     it.remove();
   }
}

for(int i=inDataList.size()-1;i使用迭代器
并尝试从列表中删除元素

for( int i=inDataList.size()-1; i <= 0 ; i--) {
    if(somecondition){
        inDataList.remove(i);
    }
}
for(迭代器itr=inDataList.Iterator();itr.hasNext();itr.next();){ 如果(某些条件){ itr.remove(); } }
使用
迭代器
并尝试从列表中删除元素

for( int i=inDataList.size()-1; i <= 0 ; i--) {
    if(somecondition){
        inDataList.remove(i);
    }
}
for(迭代器itr=inDataList.Iterator();itr.hasNext();itr.next();){ 如果(某些条件){ itr.remove(); } }
使用
迭代器

for(Iterator<InData> itr = inDataList.iterator();itr.hasNext();itr.next();) {
    if(somecondition) {
        itr.remove();
    }
}
List inDataList=generateInRepo.getInList();
for(迭代器迭代器=inDataList.Iterator();迭代器
.hasNext();){
InData InData=(InData)迭代器.next();
如果(某些条件){
iterator.remove();
}
}

使用
迭代器

for(Iterator<InData> itr = inDataList.iterator();itr.hasNext();itr.next();) {
    if(somecondition) {
        itr.remove();
    }
}
List inDataList=generateInRepo.getInList();
for(迭代器迭代器=inDataList.Iterator();迭代器
.hasNext();){
InData InData=(InData)迭代器.next();
如果(某些条件){
iterator.remove();
}
}

任何编程语言的一般做法都是:如果需要删除记录,请不要更改原始数组;如果需要删除记录,请处理副本。任何编程语言的一般做法都是:如果需要删除记录,请处理副本,请不要更改原始数组。