Yes, you can think of a collection as a type of object.
Can anything done by a collection then just be done by designing a custom class/object?
Yes, because of the first point that collections are objects.
I am guessing the Collections might be more optimized than doing so; but is efficiency the only reason to use collections rather than designing your own data-type/class/object
Someone had to implement collections to begin with, and there's nothing to say that you can't do a better job than that guy did. However, chances are very good that you won't because of another important factor: time. The designer of collections focus countless hours on making them good at what they're suppose to do. Chances are you don't have the same time they have to dedicate to fine-tune your implementation.
There's also another big factor which is often times more important than raw speed: maintainability. The more code you can re-use, the more maintainable your program is. Often times there's no point in implementing your own collection if one already exists and will suite your purposes.
edit:
Most general purpose collection libraries actually aren't faster than a custom implementation designed specifically for a certain situation (assuming both are implemented correctly). The power comes when you don't have to implement 10 different binary trees or a dozen different hash maps, you just have the 1 implementation which can handle most cases well enough.