I'm trying to create a HashMap, loop through that HashMap, and finally, I'm trying create an ArrayList of key/value pairs -- from the HashMap -- that contain within its value set a parameter value. I realize that might be a little hard to understand, so I've provided my code to make sense of what I'm trying to accomplish.

package data;
 
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
 
public class ProductInventory 
{  
    private Map <String, ArrayList<String>> product;
    private ArrayList <String> buildProduct;
    private ArrayList <ArrayList<String>> addProduct;
 
    public ProductInventory()
    {   
        /** Set default values **/
 
        product = new <String, ArrayList<String>> HashMap();
        buildProduct = new ArrayList<String> ();
        addProduct = new ArrayList<ArrayList <String>> ();
 
        /** START - Create ArrayList for each item and add to HashMap**/
 
        ArrayList <String> c1 = new ArrayList<String>();
        ArrayList <String> c2 = new ArrayList<String>();
 
        c1.add("computer"); c1.add("Apple"); c1.add("iPad2"); c1.add("499.00");
        c2.add("computer"); c2.add("Asus"); c2.add("Zenbook"); c2.add("1449.00");
 
        ArrayList <String> tv1 = new ArrayList<String>();
        ArrayList <String> tv2 = new ArrayList<String>();
 
        tv1.add("television"); tv1.add("Panasonic"); tv1.add("Viera"); tv1.add("899.00");
        tv2.add("television"); tv2.add("Samsung"); tv2.add("Series 6"); tv2.add("1597.00");
 
        ArrayList <String> a1  = new ArrayList<String>();
        ArrayList <String> a2 = new ArrayList<String>();
 
        a1.add("audio"); a1.add("Bose"); a1.add("321 GS Series III"); a1.add("999.00");
        a2.add("audio"); a2.add("Onkyo"); a2.add("HT-S3400"); a2.add("329.00"); 
 
        /** END - Create ArrayList for each item and add to HashMap **/
 
        /** Add entrys to HashMap **/
 
        product.put("CMC769LLA",c1);
        product.put("CUX31EDH72",c2);
        product.put("TVTCL50E3",tv1);
        product.put("TVUN55D6000",tv2);
        product.put("A321GSIIIBK",a1);
        product.put("AHTS3400",a2);
 
    }
 
    /** For the sake of this example, the productAttribute parameter will be equal to "computer"  **/
 
    public void setProducts(String productAttribute)
    {
            for (Map.Entry <String, ArrayList<String>> entry : product.entrySet()) /** Loop through all entrys in the HashMap **/
            {              
                for (String s: entry.getValue()) /** Loop through all values in HashMap**/
                {
                    /** Add product attributes **/
                    if (s.equals(productAttribute))  /** Check to see if param exists in the value set**/
                    {
                       /** Add key to buildProduct ArrayList **/
                        buildProduct.add(entry.getKey()); 
 
                         /*Loop through values of the corresponding key and add to buildProduct*/
                        for (Iterator<String> i = entry.getValue().iterator(); i.hasNext();)
                        {    
                                Object item = i.next(); 
                                buildProduct.add(item.toString());
                        }
 
                        /** Add buildProduct arrayList to product arrayList **/
                        addProduct.add(buildProduct);
                        break; /** Exit nested loop**/
                    }
                }
            }  
    }
}

For the desired output we can assume that the productAttribute parameter value is "Computer".

Current output of the addProduct ArrayList:
Size of ArrayList: [2]
Content of each element:
[0] - (Size [10]
      [0] - "CMC769LLA"
      [1] - "Computer"
      [2] - "Apple"
      [3] - "iPad2"
      [4] - "499.00"
      [5] - "CUX31EDH72"
      [6] - "Computer"
      [7] - "Asus"
      [8] - "Zenbook"
      [9] - "1449.00"
[1] - (Size [10])
     /**  It includes the exact same content as element [0] **/

Desired output of the addProduct ArrayList:
Size of ArrayList: [2]
Content of each element:
[0] - (Size [5])
      [0] - "CMC769LLA"
      [1] - "Computer"
      [2] - "Apple"
      [3] - "iPad2"
      [4] - "499.00"
[1] - (Size [5])
      [0] - "CUX31EDH72"
      [1] - "Computer"
      [2] - "Asus"
      [3] - "Zenbook"
      [4] - "1449.00"

I can't seem to figure out what I'm doing wrong. Any help would be greatly appreciated.