public IntTreePMap<V> plusAll(final Map<? extends Integer, ? extends V> map) {
        IntTree<V> root = this.root;
        for (Entry<? extends Integer, ? extends V> entry : map.entrySet())
            root = root.plus(entry.getKey(), entry.getValue());
        return withRoot(root);
    }