Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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_Loops_Arraylist_Collections_Logical Operators - Fatal编程技术网

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

我正在处理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.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