队列调整大小的方法

时间:2016-12-01 15:03:19

标签: java

我正在使用数组编写优先级队列代码。我想创建一个方法来更改队列的大小,并在队列填充75%时扩展队列的大小。有人可以帮忙吗?

这是我的方法:

public void insert(T object) {
    if (object == null) throw new IllegalArgumentException();

    if (size == heap.length - 1) throw new IllegalStateException();

    heap[++size] = object;

    swim(size);
}

1 个答案:

答案 0 :(得分:0)

怎么样:

public void insert(T object) {
    if (object == null) throw new IllegalArgumentException();

    if (size >= 0.75*heap.length) {
        resize(2*heap.length);
    }

    heap[++size] = object;
}

private void resize(int newSize) {
    T[] newHeap = (T[])new Object[newSize];
    System.arraycopy(heap, 0, newHeap, 0, size);
    heap = newHeap;
}