private E removeByIndex()

in concurrency-loadbalancer-core/src/main/java/com/uber/concurrency/loadbalancer/utils/HashIndexedPriorityQueue.java [218:235]


    private E removeByIndex(int index) {
        int size = entityList.size();
        if (index >= size) {
            return null;
        }
        E entity = entityList.get(index);
        entityToIndex.remove(entity);
        if (index == size - 1) {
            entityList.remove(index);
        } else {
            E replacement = entityList.remove(size - 1);
            entityList.set(index, replacement);
            entityToIndex.put(replacement, index);
            siftDown(index, replacement);
        }

        return entity;
    }