Java 在迭代过程中有条件地删除自定义对象ArrayList元素
我正在处理java需求,我需要根据一些条件删除一些ArrayList元素 这是我的密码:Java 在迭代过程中有条件地删除自定义对象ArrayList元素,java,loops,arraylist,collections,logical-operators,Java,Loops,Arraylist,Collections,Logical Operators,我正在处理java需求,我需要根据一些条件删除一些ArrayList元素 这是我的密码: package com.demo.test; public class ProductBean { public ProductBean(int code,String name,String type,String status){ this.productCode=code; this.productType=type; this.produ
package com.demo.test;
public class ProductBean {
public ProductBean(int code,String name,String type,String status){
this.productCode=code;
this.productType=type;
this.productName=name;
this.productStatus=status;
}
public int getProductCode() {
return productCode;
}
public void setProductCode(int productCode) {
this.productCode = productCode;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getProductType() {
return productType;
}
public void setProductType(String productType) {
this.productType = productType;
}
public String getProductStatus() {
return productStatus;
}
public void setProductStatus(String productStatus) {
this.productStatus = productStatus;
}
private String productName;
private String productType;
private String productStatus;
private int productCode;
public String toString(){
return"prduct details are : "+this.productCode+" "+this.productName+" "+this.productType+" "+this.productStatus;
}
}
测试等级:
package com.demo.test;
import java.util.ArrayList;
import java.util.Iterator;
public class ProductTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
ProductBean p1=new ProductBean(1, "product1", "toy", "S1");
ProductBean p2=new ProductBean(2, "product2", "toy", "S1");
ProductBean p3=new ProductBean(3, "product3", "toy", "S1");
ProductBean p4=new ProductBean(4, "product4", "toy", "S1");
ProductBean p5=new ProductBean(5, "product5", "toy", "S2");
ProductBean p6=new ProductBean(6, "product6", "toy", "S2");
ProductBean p7=new ProductBean(7, "product7", "toy", "S2");
ProductBean p8=new ProductBean(8, "product8", "toy", "S2");
ProductBean p9=new ProductBean(9, "product9", "toy", "S2");
ArrayList<ProductBean> productList=new ArrayList<ProductBean>();
productList.add(p1);
productList.add(p2);
productList.add(p3);
productList.add(p4);
productList.add(p5);
productList.add(p6);
productList.add(p7);
productList.add(p8);
productList.add(p9);
int requiredProductCode=2;
String requiredProductStatus="S1";
Iterator<ProductBean> itr=productList.iterator();
while(itr.hasNext()){
ProductBean pbean=itr.next();
if(pbean.getProductCode()<=requiredProductCode){
itr.remove();
}
if(!pbean.getProductStatus().equals(requiredProductStatus)){
itr.remove();
}
}
for(ProductBean pbean1:productList){
System.out.println(pbean1);
}
}
}
我尝试使用AND(&&)或(| |)运算符来实现这一点,但没有得到所需的输出。最后,我在while循环中使用了两个if条件。请改进此代码段的改进建议。使用一些逻辑运算符避免代码中出现两个if条件。现在,如果
if
语句中的两个条件都为真,您将删除两个而不是一个。您可以将第二个设置为else if
,或将两个设置合并为单个if
,如下所示:
if((bean.getProductCode()尝试将第二个if
更改为else if
,这样,如果两个语句都为真,就不会删除两个内容。我可以使用任何其他逻辑运算符在单个if条件下使用两个比较语句来获得所需的输出吗?如果条件正在下降,您可以使用|
合并它们。如果愿意的话。if((bean.getProductCode()if((pbean.getProductCode())
prduct details are : 3 product3 toy S1
prduct details are : 4 product4 toy S1