@Override public LongSet finishSet() { assert size == heap.size(); LongSet longs = new LongOpenHashSet(size); while (!heap.isEmpty()) { longs.add(items.getLong(heap.dequeueInt())); } clear(); return longs; }
@Override public LongList finishList() { assert size == heap.size(); int[] indices = new int[size]; // Copy backwards so the scored list is sorted. for (int i = size - 1; i >= 0; i--) { indices[i] = heap.dequeueInt(); } LongList list = new LongArrayList(size); for (int i : indices) { list.add(items.getLong(i)); } assert heap.isEmpty(); clear(); return list; }
@Override public Long2DoubleMap finishMap() { if (scores == null) { return Long2DoubleMaps.EMPTY_MAP; } assert size == heap.size(); int[] indices = new int[size]; // Copy backwards so the scored list is sorted. for (int i = size - 1; i >= 0; i--) { indices[i] = heap.dequeueInt(); } assert heap.isEmpty(); long[] keys = new long[indices.length]; double[] values = new double[indices.length]; for (int i = 0; i < indices.length; i++) { keys[i] = items.getLong(indices[i]); values[i] = scores.getDouble(indices[i]); } clear(); return Long2DoubleSortedArrayMap.wrapUnsorted(keys, values); }
@Override public LongSet finishSet() { assert size == heap.size(); LongSet longs = new LongOpenHashSet(size); while (!heap.isEmpty()) { longs.add(items.getLong(heap.dequeueInt())); } clear(); return longs; }
@Override public LongList finishList() { assert size == heap.size(); int[] indices = new int[size]; // Copy backwards so the scored list is sorted. for (int i = size - 1; i >= 0; i--) { indices[i] = heap.dequeueInt(); } LongList list = new LongArrayList(size); for (int i : indices) { list.add(items.getLong(i)); } assert heap.isEmpty(); clear(); return list; }
@Override public Long2DoubleMap finishMap() { if (scores == null) { return Long2DoubleMaps.EMPTY_MAP; } assert size == heap.size(); int[] indices = new int[size]; // Copy backwards so the scored list is sorted. for (int i = size - 1; i >= 0; i--) { indices[i] = heap.dequeueInt(); } assert heap.isEmpty(); long[] keys = new long[indices.length]; double[] values = new double[indices.length]; for (int i = 0; i < indices.length; i++) { keys[i] = items.getLong(indices[i]); values[i] = scores.getDouble(indices[i]); } clear(); return Long2DoubleSortedArrayMap.wrapUnsorted(keys, values); }