有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    那么:

    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;
    }