Java中的DelayQueue remainingCapacity()方法及示例

Java中的DelayQueue remainingCapacity()方法及示例

DelayQueue的 remainingCapacity() 方法始终返回 Integer.MAX_VALUE ,因为DelayQueue没有容量限制。这意味着无论DelayQueue的大小如何,它返回的结果都是相同的,即 Integer.MAX_VALUE

语法:

public int remainingCapacity()

返回值:

该函数返回 Integer.MAX_VALUE

异常:

没有任何异常。

下面是DelayQueue.remainingCapacity()方法的示例程序:

程序:

// Java演示DelayQueue remainingCapacity()方法
import java.util.concurrent.*;
import java.util.*;

// DelayQueue的DelayObject
// 它必须实现Delayed接口和它的getDelay()和compareTo()方法
class DelayObject implements Delayed {

    private String name;
    private long time;

    // DelayObject的构造函数
    public DelayObject(String name, long delayTime)
    {
        this.name = name;
        this.time = System.currentTimeMillis()
                    + delayTime;
    }

    // 实现Delayed的getDelay()方法
    @Override
    public long getDelay(TimeUnit unit)
    {
        long diff = time - System.currentTimeMillis();
        return unit.convert(diff, TimeUnit.MILLISECONDS);
    }

    // 实现Delayed的compareTo()方法
    @Override
    public int compareTo(Delayed obj)
    {
        if (this.time < ((DelayObject)obj).time) {
            return -1;
        }
        if (this.time > ((DelayObject)obj).time) {
            return 1;
        }
        return 0;
    }

    // 实现Delayed的toString()方法
    @Override
    public String toString()
    {
        return "\n{"
            + " " + name + ", time=" + time + "}";
    }
}

// Driver类
public class GFG {
    public static void main(String[] args) throws InterruptedException
    {

        // 使用DelayQueue()构造函数创建DelayQueue对象
        BlockingQueue DQ
            = new DelayQueue();

        // 使用add()方法向DelayQueue的末尾添加数字
        DQ.add(new DelayObject("A", 1));
        DQ.add(new DelayObject("B", 2));

        // 打印DelayQueue的大小
        System.out.println("DelayQueue的大小: " + DQ.size());

        // remainingCapacity()方法始终返回Integer.MAX_VALUE
        System.out.println("DelayQueue剩余容量:" + DQ.remainingCapacity());
        // poll()方法用于删除DelayQueue头
        DQ.poll();
        // 打印DelayQueue的大小
        System.out.println("DelayQueue的大小: " + DQ.size());
        // remainingCapacity()方法始终返回Integer.MAX_VALUE
        System.out.println("DelayQueue剩余容量:" + DQ.remainingCapacity());
        // poll()方法用于删除DelayQueue头
        DQ.poll();
        // 打印DelayQueue的大小
        System.out.println("DelayQueue的大小: " + DQ.size());
        // remainingCapacity()方法始终返回Integer.MAX_VALUE
        System.out.println("DelayQueue剩余容量:" + DQ.remainingCapacity());
    }
}

输出:

DelayQueue的大小: 2
DelayQueue剩余容量:2147483647
DelayQueue的大小: 1
DelayQueue剩余容量:2147483647
DelayQueue的大小: 0
DelayQueue剩余容量:2147483647

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程