Java静态ArrayList<;对象>;删除问题

Java静态ArrayList<;对象>;删除问题,java,Java,我有静态数组列表。我想删除包含productcode的对象 这是我的批处理实体 public class BatchControl implements Parcelable{ private String productCode; private String lotNumber; private String batchSerialNumber; private double quantity ; private int sequence; private Str

我有
静态数组列表
。我想删除包含productcode的对象

这是我的批处理实体

public class BatchControl implements Parcelable{
  private String productCode;
  private String lotNumber;
  private String batchSerialNumber;
  private double quantity   ;
  private int sequence;
  private String productName;
  private String type;
  //Setter & getter
 }
这是我的移动对象

  static ArrayList<String> lstString = new ArrayList<String>();
  for (Iterator<Batch> i = lstString.iterator(); i.hasNext(); ) {
        Batch value=(Batch )i.next();
        if(value.getSequence() == iVal) {
            lstString.remove(value);
        }
    }
但它并没有删除哪个对象有iValue。因为resoan静态arraylist,所以每次&每次我删除大小时都会改变

请帮帮我


提前感谢。

您应该使用i.remove(),请参阅您应该使用i.remove(),请参阅在列表上使用
迭代器时,您可以安全地使用删除当前元素(关于列表中的位置或索引)

for(迭代器i=lstString.Iterator();i.hasNext();){
批处理值=(批处理)i.next();
if(lstBatCtrl.get(k).getSequence()==iVal){
i、 删除();
}
}
请注意,如果在
静态列表
上同时进行修改,则在
静态列表
上使用
remove()
可能会产生问题。引用Iterator.remove()
的javadoc:

如果基础的 在迭代以任何方式进行时修改集合 而不是调用此方法


在列表上使用
迭代器时,可以使用安全删除当前元素(关于列表中的位置或索引)

for(迭代器i=lstString.Iterator();i.hasNext();){
批处理值=(批处理)i.next();
if(lstBatCtrl.get(k).getSequence()==iVal){
i、 删除();
}
}
请注意,如果在
静态列表
上同时进行修改,则在
静态列表
上使用
remove()
可能会产生问题。引用Iterator.remove()
的javadoc:

如果基础的 在迭代以任何方式进行时修改集合 而不是调用此方法


使用以下代码:

  for (Iterator<Batch> i = lstString.iterator(); i.hasNext(); ) {
        Batch value=(Batch )i.next();
        if(value.getSequence() == iVal) {
            i.remove();
        }
    }
for(迭代器i=lstString.Iterator();i.hasNext();){
批处理值=(批处理)i.next();
if(value.getSequence()==iVal){
i、 删除();
}
}

使用以下代码:

  for (Iterator<Batch> i = lstString.iterator(); i.hasNext(); ) {
        Batch value=(Batch )i.next();
        if(value.getSequence() == iVal) {
            i.remove();
        }
    }
for(迭代器i=lstString.Iterator();i.hasNext();){
批处理值=(批处理)i.next();
if(value.getSequence()==iVal){
i、 删除();
}
}

在哪里定义了
iVal
?上面的代码无法编译。向我们展示您的真实代码。展示如何在
lstBatCtrl.get(k).getSequence()==iVal
中定义变量。它仍然无法编译。
ArrayList
不可能返回一个
迭代器
。在哪里定义了
iVal
?上面的代码无法编译。向我们展示您的真实代码。展示如何在
lstBatCtrl.get(k).getSequence()==iVal
中定义变量。它仍然无法编译。
ArrayList
无法返回
迭代器。
  for (Iterator<Batch> i = lstString.iterator(); i.hasNext(); ) {
        Batch value=(Batch )i.next();
        if(value.getSequence() == iVal) {
            i.remove();
        }
    }