collection is a data structure like arrays. generics make collections type safe!
when you say 'ArrayList al', the al is an ArrayList , and like that, ArrayList is a Collection. in this code no generic applied. so, you can insesrt anything(String,Integer,or any customer object) to this ArrayList.
but in the other form, when you say, 'ArrayList<String> al', you can only insert Strings to it.No Integers and anything else. here,"<String>" is the generic type. "ArrayList" is the collection.