Hi friends, I have a method like this, the 3rd param, category contains ArrayList of classes Category.
Here I am copying the Category class from the ArrayList to lALCategories (Line 11) and storing its property name into a local variable lsName (Line15) and doing some processing and writing it back on line 19. Then adding this class to lALOutPut. Here the changes I made to the class property name is reflected in HashMap category also. I don't want the changes to be reflected in the passed HashMap category. How do I do this? Please help. TIA Sudheer 01. public static ArrayList listTree(Integer parentID, HashMap tree, HashMap category) 02. { 03. Category lCCategory = null; 04. ArrayList lALCategories = new ArrayList(), lALOutPut = new ArrayList(); 05. Integer liNext = null; 06. Integer liTree[] = (Integer[]) tree.get(parentID); 07. String lsName = ""; 08. for (short liElm = 0; liElm < liTree.length; liElm++) 09. { 10. liNext = liTree[liElm]; 11. lALCategories = (ArrayList) category.get(liNext); 12. for (int liIElm = 0; liIElm < lALCategories.size(); liIElm++) 13. { 14. lCCategory = (Category) lALCategories.get(liIElm); 15. lsName = lCCategory.getName() 16. /* 17. Some processing here on lsName. 18. */ 19. lCCategory.setName(lsName); 20. lALOutPut.add(lCCategory); 21. } 22. } 23. return lALOutPut; 24.}