Wouldn't this benefit from a container class, ie `LinkedList<CollectionChangeItem<K, V>>`. The container could be reused for all 4 classes.