Instead of ignoring the size hint, use it.
Change-Id: I516fbb2a8c18bb6276b5863292f8b0e956ceb6da
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
43a86587a3fa6402a4eee19ecffb119b178994f5)
*/
package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl;
+import com.google.common.collect.Maps;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
}
protected AbstractImmutableDataContainerNodeBuilder(final int sizeHint) {
- this.value = new HashMap<>(DEFAULT_CAPACITY);
+ if (sizeHint >= 0) {
+ this.value = Maps.newHashMapWithExpectedSize(sizeHint);
+ } else {
+ this.value = new HashMap<>(DEFAULT_CAPACITY);
+ }
this.dirty = false;
}
package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl;
import com.google.common.base.Optional;
+import com.google.common.collect.Maps;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
}
protected ImmutableLeafSetNodeBuilder(final int sizeHint) {
- value = new HashMap<>(sizeHint * 4 / 3);
+ if (sizeHint >= 0) {
+ value = Maps.newHashMapWithExpectedSize(sizeHint);
+ } else {
+ value = new HashMap<>(DEFAULT_CAPACITY);
+ }
}
protected ImmutableLeafSetNodeBuilder(final ImmutableLeafSetNode<T> node) {
package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl;
import com.google.common.base.Optional;
+import com.google.common.collect.Maps;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
}
protected ImmutableMapNodeBuilder(final int sizeHint) {
- this.value = new HashMap<>(DEFAULT_CAPACITY);
+ if (sizeHint >= 0) {
+ this.value = Maps.newHashMapWithExpectedSize(sizeHint);
+ } else {
+ this.value = new HashMap<>(DEFAULT_CAPACITY);
+ }
}
protected ImmutableMapNodeBuilder(final ImmutableMapNode node) {
}
protected ImmutableOrderedMapNodeBuilder(final int sizeHint) {
- this.value = new LinkedHashMap<>(DEFAULT_CAPACITY);
+ if (sizeHint >= 0) {
+ this.value = new LinkedHashMap<>(sizeHint + sizeHint / 3);
+ } else {
+ this.value = new LinkedHashMap<>(DEFAULT_CAPACITY);
+ }
this.dirty = false;
}