You need to choose the key-value collection for a multithreaded environment. The key is a unique ID that represents every kid in a kindergarten. The value represents how many toys the kid owns. It is known that the number of toys for every kid is constantly changing: kids lose their toys and often receive new ones. So we expect often and simultaneous updates.
Which is a better choice, ConcurrentHashMap or Collections.synchronizedMap?