diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java index 432d8364..24aa6e27 100644 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java +++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java @@ -5,6 +5,7 @@ import org.apache.commons.lang3.tuple.Pair; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.IntStream; public class MergingKvIterator, V> extends ReversibleKvIterator { private final NavigableMap> _sortedIterators = new TreeMap<>(); @@ -15,13 +16,11 @@ public class MergingKvIterator, V> extends ReversibleKvI _goingForward = true; _name = name; - int counter = 0; - var iteratorsTmp = new HashMap, Integer>(); - for (var iteratorFn : iterators) { - var iterator = iteratorFn.get(startType, startKey); - iteratorsTmp.put(iterator, counter++); - } - _iterators = Map.copyOf(iteratorsTmp); + _iterators = Map.ofEntries( + IntStream.range(0, iterators.size()) + .mapToObj(i -> Pair.of(iterators.get(i).get(startType, startKey), i)) + .toArray(Pair[]::new) + ); if (startType == IteratorStart.LT || startType == IteratorStart.LE) { // Starting at a greatest key less than/less or equal than: