title: Searching a list of items with a specific name
body: <p>I am doing an Object Oriented program which contains a class Catalog and a class Products. Catalog has a method which suppose to search a list of products with a specific name that are read from a file. Everything works but the getProducts is not working.</p>
  
  <p>This is the Catalog class with the getProducts(String name)</p>
  
  <pre><code>import java.io.File;
  import java.io.FileNotFoundException;
  import java.util.*
  
  public class Catalog{
  
  
  
      private static int MAX_ITEMS = 10;
  
      private Products[] list;
  
      private int nextItem;
  
  
      /**
       * Default constructor 
       */
      public Catalog(){
          list = new Products[MAX_ITEMS];
          nextItem = 0;
      }
  
      /**
       * Reads items from an input file.
       */
      public void loadList(String fileName)
              throws FileNotFoundException { 
          if ( (fileName != null) &amp;&amp; (!fileName.equals("")) ) { 
              Scanner input = new Scanner(new File(fileName)); 
              String newLine = null; 
              String name = null;
              int quantity = 0;
              double price = 0.0;
  
  
              while (input.hasNextLine() &amp;&amp; nextItem &lt; MAX_ITEMS) { 
                  if (input.hasNext()) { 
                      name = input.next(); 
                  } else { 
                      System.err.println("ERROR Not a String"); 
                      System.exit(2); 
                  }
                  if (input.hasNextInt()) { 
                      quantity = input.nextInt(); 
                  } else { 
                      System.err.println("ERROR Not an integer"); 
                      System.exit(2); 
                  } 
                  if (input.hasNextDouble()) { 
                      price = input.nextDouble(); 
                  } else { 
                      System.err.println("ERROR Not a double"); 
                      System.exit(2); 
                  }
                  list[nextItem] = new Products(name, quantity, price); 
                  newLine = input.nextLine(); 
                  nextItem += 1; 
              } 
          } 
          return; 
      } 
  
      /**
       * Calculate the total cost of products.
       */
      public double getTotalPrice(){
          double total = 0.0;
          for(int i=0; i &lt; nextItem; i++){
              Products products = list[i];
              total+=products.getTotalPrice();
          }
          return total;
      }
  
      /**
       * Search Catalog items with a product name and returns it to caller
       */
      public Products getProducts(String name){
          **//search a list for string equality using the name of the product and returns it to the caller**
          for(int i=0; i&lt;nextItem; i++){
              Products item = list[i];
              if(item.equals(name)){
                  return item;  //What is suppose to be returned or how to  
                  //return it to the caller
              }
  
              public static void main(String[] args) 
                      throws FileNotFoundException { 
                  Catalog catalog= new Catalog(); 
                  catalog.loadList(args[0]);
                  System.out.println();
                  System.out.format("Total Price = %9.2f\n", catalog.getTotalPrice());
              }
          }
  </code></pre>
  
  <p>This is Products class</p>
  
  <pre><code>public class Products {
  
      private String name;
      private int quantity;
      private double price;
  
      /**
       * Constructor.
       */
      public Products(String name, int quantity, double price){
          this.name = name;
          this.quantity = quantity;
          this.price = price;
      }
      /**
       * Gets name of the product.
       */
      public String getName(){
          return this.name;
      }
      /**
       * Gets the quantity of products.
       */
      public int getQuantity(){
          return this.quantity;
      }
      /**
       * Gets the cost per product.
       */
      public double getPrice(){
          return price;
      }
      /**
       * set quantity of the products.
       */
      public void setQuantity(int quantity){
          this.quantity=quantity;
      }
      /**
       * Calculate the total price.
       */
      public double getTotalPrice(){
          return quantity * price;
      }
      /**
       * Returns a spaced-separated list of the attributes.
       */
      public String toString(){
          toStr="";
          toStr= toStr + getName();
          return toStr;
      }
  </code></pre>
  
  <p>This is the file</p>
  
  <pre>
      Football 2 15.50
      Football-Jersey 2 30.95
      ChapStick 1 3.87
      Book 4 10.00
      Book-Journal 1 5.00
  </pre>