Below are the two methods to retrieve the list elements 1) for (int i=0, n=list.size(); i < n; i++) list.get(i); 2) for (Iterator i=list.iterator(); i.hasNext(); ) i.next(); When we can retrieve the elements of list using 1) case, then why did Java allow us to use 2) case, which is using Iterator interface? Is there any difference between these two approaches ...