java谁能举个队列中offer比add好的例子

offer,add区别:
一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。
这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。

实在不知道怎么构建出这样的例子orz

第1个回答  2013-07-28
一般list或是queue都不用限制大小,如果在超出jvm限制的时候用add方法会抛出异常,而offer方法会返回false。我觉得offer和add不存在谁好谁坏的说法。add用在链表中,offer用在队列中,前者是实现了list接口的方法,后者是实现了queue接口的方法,主要是针对不同的场景,选择合适的方法就行了。追问

那请问怎么能构建出一个限制大小的List或queue?我只知道Arrays.asList但这样的话,根本就没有add或offer方法了。

追答

你可以:
List list = new ArrayLIst();
while(list.getSize() < MAXSIZE){
add(new Object());

}

java一般不用限制list的大小。

追问

PriorityQueue pq = new PriorityQueue();
while(pq.size() < 3)
{
//System.out.println(pq.size());
pq.add("haha");

}
pq.add("lulu");
System.out.println(pq);
这个add也没报错啊。。。我就是想要个能满足add报错,offer返回false的例子。。

相似回答