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();
}
}