/** * Assimilate a new value from the stream. */ public void add(T datum) { sorted = false; if (n < k) { heap[n++] = datum; if (n == k) { heapify(heap); } } else { n++; if (datum.compareTo(heap[0]) < 0) { heap[0] = datum; SortUtils.siftDown(heap, 0, k-1); } } }
datum.key = data[i]; datum.value = data[i]; heap.heapify();
datum.key = keys[index[idx]]; datum.value = data[index[idx]]; heap.heapify();