Comparing two Lists in java
<p>In an application we have a Boarding table having ( boarding_id + invoice_no + item_id ) as key. A Boarding_tmp table with same table structure as Boarding. We are loading Boarding_tmp from a csv file (pipe separator column values) </p>

<p>We have a Boarding java bean with all columns. Let's say we have two list -</p>

<pre><code>1. boardingList with all active records in Boarding table
2. boardingTmpList with all records in Boarding_Tmp table
</code></pre>

<p>I need to compare these two list to implement below scenario -</p>

<p>We Need to compare Boarding table with Boarding_tmp table and need to do following (No SQL joins. We have to perform this on object level) -</p>

<pre><code>a. All records which are in Boarding_tmp but not in Boarding table should be inserted in Boarding table (means they are new records)
b. All records which are in Boarding but not in Boarding_tmp table should be mark as deactivated in Boarding table (we have a active column in Boarding table)
</code></pre>

<p>Here in Boarding.java -</p>

<pre><code>public class Boarding implements Comparable {

    private String bordingId;
    private String itemId;
    private String invoiceNo;
    private String itemName;
    private long qty;
    private double price;

    /**
     * @return the bordingId
     */
    public String getBordingId() {
        return bordingId;
    }

    /**
     * @param bordingId
     *            the bordingId to set
     */
    public void setBordingId(String bordingId) {
        this.bordingId = bordingId;
    }

    /**
     * @return the itemId
     */
    public String getItemId() {
        return itemId;
    }

    /**
     * @param itemId
     *            the itemId to set
     */
    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    /**
     * @return the invoiceNo
     */
    public String getInvoiceNo() {
        return invoiceNo;
    }

    /**
     * @param invoiceNo
     *            the invoiceNo to set
     */
    public void setInvoiceNo(String invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    /**
     * @return the itemName
     */
    public String getItemName() {
        return itemName;
    }

    /**
     * @param itemName
     *            the itemName to set
     */
    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    /**
     * @return the qty
     */
    public long getQty() {
        return qty;
    }

    /**
     * @param qty
     *            the qty to set
     */
    public void setQty(long qty) {
        this.qty = qty;
    }

    /**
     * @return the price
     */
    public double getPrice() {
        return price;
    }

    /**
     * @param price
     *            the price to set
     */
    public void setPrice(double price) {
        this.price = price;
    }

    /*
     * (non-Javadoc)
     * 
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result
                + ((bordingId == null) ? 0 : bordingId.hashCode());
        result = prime * result
                + ((invoiceNo == null) ? 0 : invoiceNo.hashCode());
        result = prime * result + ((itemId == null) ? 0 : itemId.hashCode());
        return result;
    }

    @Override
    public int compareTo(Object o) {
        if (this == o) {
            return 0;
        }
        if (o == null) {
            return 1;
        }
        if (getClass() != o.getClass()) {
            return 1;
        }
        Boarding other = (Boarding) o;
        if (bordingId == null) {
            if (other.bordingId != null) {
                return 1;
            }
        } else if (!bordingId.equals(other.bordingId)) {
            return 1;
        }
        if (invoiceNo == null) {
            if (other.invoiceNo != null) {
                return 1;
            }
        } else if (!invoiceNo.equals(other.invoiceNo)) {
            return 1;
        }
        if (itemId == null) {
            if (other.itemId != null) {
                return 1;
            }
        } else if (!itemId.equals(other.itemId)) {
            return 1;
        }

        return 0;
    }

}
</code></pre>

<p>Please help. Thanks.</p>
