title: Comparing two Lists in java
body: <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>