personally, i would comment all of them out but one, and implement it first. implement it,
test it, test it some more, then test it again. Note that when testing, you often have to write 'throw-away' code - code that is used ONLY for testing, but won't then be in your final program.
Which method you do first is sort of dependent on a few things. You can't really test your clear() method if there is nothing in the collection, so it doesn't make sense to implement it first...and Rob is right - your put() method has problems.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors