博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java poll返回值_Java DelayQueue poll()用法及代码示例
阅读量:5939 次
发布时间:2019-06-19

本文共 3787 字,大约阅读时间需要 12 分钟。

DelayQueue的poll()方法用于检索DelayQueue的头部。此方法还从DelayQueue中删除头。因此,当调用poll方法时,DelayQueue的大小将减小1。

用法:

public E poll ()

参数:

此方法不接受任何参数。

返回值:

此方法返回DelayQueue的头部,并将其从此DelayQueue中删除。

异常:

NullPointerException :如果head不存在,则此函数将返回null。

下面的程序来说明Java中的DelayQueue poll():

例:

// Java Program Demonstrate DelayQueue poll() method

import java.util.concurrent.*;

import java.util.*;

// The DelayObject for DelayQueue

// It must implement Delayed and

// its getDelay() and compareTo() method

class DelayObject implements Delayed {

private String name;

private long time;

// Contructor of DelayObject

public DelayObject(String name, long delayTime)

{

this.name = name;

this.time = System.currentTimeMillis()

+ delayTime;

}

// Implementing getDelay() method of Delayed

@Override

public long getDelay(TimeUnit unit)

{

long diff = time - System.currentTimeMillis();

return unit.convert(diff, TimeUnit.MILLISECONDS);

}

// Implementing compareTo() method of Delayed

@Override

public int compareTo(Delayed obj)

{

if (this.time < ((DelayObject)obj).time) {

return -1;

}

if (this.time > ((DelayObject)obj).time) {

return 1;

}

return 0;

}

// Implementing toString() method of Delayed

@Override

public String toString()

{

return "\n{"

+ " " + name + ", time=" + time + "}";

}

}

// Driver Class

public class GFG {

public static void main(String[] args) throws InterruptedException

{

// create object of DelayQueue

// using DelayQueue() constructor

BlockingQueue DQ

= new DelayQueue();

// Add numbers to end of DelayQueue

// using add() method

DQ.add(new DelayObject("A", 1));

DQ.add(new DelayObject("B", 2));

DQ.add(new DelayObject("C", 3));

DQ.add(new DelayObject("D", 4));

// Print delayqueue

System.out.println("Original DelayQueue: "

+ DQ + "\n");

// Print size of original DelayQueue

System.out.println("Original DelayQueue size: "

+ DQ.size() + "\n");

// poll() method for returning head of the DelayQueue

System.out.println("Head of the DelayQueue: "

+ DQ.poll());

// print DelayQueue size after poll method

System.out.println("\nAfter poll() method, DelayQueue size: "

+ DQ.size());

}

}

输出:

Original DelayQueue: [

{ A, time=1545817370442},

{ B, time=1545817370443},

{ C, time=1545817370444},

{ D, time=1545817370445}]

Original DelayQueue size: 4

Head of the DelayQueue:

{ A, time=1545817370442}

After poll() method, DelayQueue size: 3

例:

// Java Program Demonstrate DelayQueue poll() method

import java.util.concurrent.*;

import java.util.*;

// The DelayObject for DelayQueue

// It must implement Delayed and

// its getDelay() and compareTo() method

class DelayObject implements Delayed {

private String name;

private long time;

// Contructor of DelayObject

public DelayObject(String name, long delayTime)

{

this.name = name;

this.time = System.currentTimeMillis()

+ delayTime;

}

// Implementing getDelay() method of Delayed

@Override

public long getDelay(TimeUnit unit)

{

long diff = time - System.currentTimeMillis();

return unit.convert(diff, TimeUnit.MILLISECONDS);

}

// Implementing compareTo() method of Delayed

@Override

public int compareTo(Delayed obj)

{

if (this.time < ((DelayObject)obj).time) {

return -1;

}

if (this.time > ((DelayObject)obj).time) {

return 1;

}

return 0;

}

// Implementing toString() method of Delayed

@Override

public String toString()

{

return "\n{"

+ " " + name + ", time=" + time + "}";

}

}

// Driver Class

public class GFG {

public static void main(String[] args) throws InterruptedException

{

// create object of DelayQueue

// using DelayQueue() constructor

BlockingQueue DQ

= new DelayQueue();

// Print size of original DelayQueue

System.out.println("Original DelayQueue size: "

+ DQ.size() + "\n");

// poll() method for returning head of the DelayQueue

System.out.println("Head of the DelayQueue: "

+ DQ.poll());

}

}

输出:

Original DelayQueue size: 0

Head of the DelayQueue: null

转载地址:http://pqltx.baihongyu.com/

你可能感兴趣的文章
监控haproxy的脚本
查看>>
单用户模式迁移home家目录
查看>>
Css常用操作——————分类
查看>>
Wrong permissions on configuration file, should not be world writable
查看>>
rabbitmq3.5.1 原理和集群安装
查看>>
linux中的rm 删除命令
查看>>
多功能PCIE交换机之三:PCIE非透明桥 cache一致性
查看>>
依赖属性之“风云再起”三
查看>>
9.1 正则介绍_grep(上);9.2 grep(中);9.3 grep(下)
查看>>
启动oracle em命令
查看>>
jquery option 动态 selected
查看>>
搭建简易堡垒机
查看>>
鸟哥的linux私房菜-文件压缩于打包-2
查看>>
coreutils-5.0中几个命令的执行过程
查看>>
F5 bigip.conf配置问题
查看>>
zabbix对一台主机监控的操作
查看>>
Yum在线升级之网络(本地)服务器的搭建!
查看>>
[毕业生的商业软件开发之路]尽早暴露错误原则
查看>>
建高性能ASP.NET站点 第五章—性能调优综述(中篇)
查看>>
用DataSet修改WebConfig
查看>>