Before I started coding in Java, C# and C++; I was only really focused on procedural coding and in particular that of Mathematical algorithms, now that I have entered the world of OOP, I have been obsessing over learning as much as possible about all the different collection types, I read many texts, forums etc etc; however most of which seem to have a pre-assumption of knowledge in the field, So my question is - does anyone know any good references that explain explicitly all the Collection types in Java? and most importantly the efficiency of each, when to use what etc?
You can find the all basis about collections in Java on the Java doc. Did you read that?
When to use what.... I don't think we can find a direct answer for this. Because we need to take different approach in different implementations we workout in our projects. If you know what each collection do and how it behave, selecting the best is not a big task.
A good book is Introduction to Algorithms ISBN 0-262-53196-8
It covers all the data structures in the Collections framework, and then some.