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
极客教程