Although if we change the keys so that we can't initialise them in the constructor, then you're obviously right, is that still a valid concern if the only access to the map after construction is to increment the atomic long? I thought that, if we have two threads trying to mutate it that way, then there could be no collision (read+mutate being some clever single op)...