@ Override public HamtPMap < K , V > plus ( K key , V value ) { return ! isEmpty ( ) ? plus ( key , hash ( key ) , checkNotNull ( value ) ) : new HamtPMap <> ( key , hash ( key ) , value , 0 , emptyChildren ( ) ) ; }
Returns a new map with the given key - value pair added . If the value is already present then this same map will be returned .