LinkedList中add和offer的区别

offer属于 offer in interface Deque<E>,add 属于 add in interface Collection<E>。

当队列为空时候,使用add方法会报错,而offer方法会返回false。

作为List使用时,一般采用add / get方法来 压入/获取对象。

作为Queue使用时,才会采用 offer/poll/take等方法作为链表对象时,offer等方法相对来说没有什么意义这些方法是用于支持队列应用的。

 

时间: 2024-10-14 13:57:15

LinkedList中add和offer的区别的相关文章

LinkedBlockingQueue的put,add跟offer的区别(转)

LinkedBlockingQueue的put,add和offer的区别 最近在学习<<Java并发编程实践>>,有很多java.util.concurrent包下的新类.LinkedBlockingQueue就是其中之一,顾名思义这是一个阻塞的线程安全的队列,底层应该采用链表实现. 看其API的时候发现,添加元素的方法竟然有三个:add,put,offer. 且这三个元素都是向队列尾部添加元素的意思.于是我产生了兴趣,要仔细探究一下他们之间的差别. 1.首先看一下add方法: I

LinkedBlockingQueue的put,add跟offer的区别

LinkedBlockingQueue的put,add和offer的区别 最近在学习<<Java并发编程实践>>,有很多java.util.concurrent包下的新类.LinkedBlockingQueue就是其中之一,顾名思义这是一个阻塞的线程安全的队列,底层应该采用链表实现. 看其API的时候发现,添加元素的方法竟然有三个:add,put,offer. 且这三个元素都是向队列尾部添加元素的意思.于是我产生了兴趣,要仔细探究一下他们之间的差别. 1.首先看一下add方法: I

Java里 ArrayList 中 add 与addAll的区别

我们经常都有这样的需求,需要把一个list的数据全部放到另一个list当中,最笨的方法当然是一个个遍历进行添加,但是Java中提供一个addAll方法. 与add方法不一样的是,add方法是添加一个item,不管你是一个什么类型的数据,都给放到item里作为一个数据进行添加.而addAll则是对相同类型的数据,对现有的list进行拼接(可能说法不严谨).举个例子: 下面有两个List,我想将第二个List的数据添加到第一个List当中,用add方法的话是这样添加的: for(String ite

List中Add()与AddAll()的区别

我们在开发过程中经常会使用到List<Object> list=new ArrrayList<>(); 这个集合,Object 也可以是String.Integer等. 当我们需要把list集合中的数据放到另外一个集合中(List.Set...),我们也许会使用循环遍历然后将对象存入到新的集合中,这样的方法确实可以实现效果,但是效率太低了.List中给我们提供了Add().AddAll()二个方法可以帮我们解决这个问题. 1 List<String> list = ne

在 VS 类库项目中 Add Service References 和 Add Web References 的区别

原文:在 VS 类库项目中 Add Service References 和 Add Web References 的区别 出身问题: 1.在vs2005时代,Add Web Reference(添加Web服务引用)的功能主要是添加Web Service引用.基于.NET Framework 2.0. 2.自VS2008以后,为了对.NET Framework 3.0 或 3.5版本上WCF Service Library的支持.增加了Add Service Reference(添加服务引用)功

Calendar中add函数和roll函数的用法及区别

Calendar中add()和roll()函数的用法一.取某个时间点后的整点时刻.例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00.实现如下:Calendar calendar = Calendar.getInstance();calendar.add(Calendar.HOUR_OF_DAY, 1);//小时上加1calendar.set(Calendar.MINUTE, 0);//分钟设为0calendar.set(Calendar.SECOND,

java 学习之List 的 add 与set方法区别

/** * 在List集合中众多方法中,add(int index,Object obj)方法与set(int index,Object e)方法不易区分 * ,通过下面实例,可以看出两个方法中的区别 */ package gao; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class CollectionDemo { public static void main(

Java中Vector和ArrayList的区别

首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复. 3个具体实现类的相关区别如下: ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组

java中List 和 Set 的区别

a. 特性 两个接口都是继承自Collection?,是常用来存放数据项的集合,主要区别如下:      ① List和Set之间很重要的一个区别是是否允许重复元素的存在,在List中允许插入重复的元素,而在Set中不允许重复元素存在. ? ② 与元素先后存放顺序有关,List是有序集合,会保留元素插入时的顺序,Set是无序集合. ? ③ List可以通过下标来访问,而Set不能. b. 常见实现类 ? (1) List接口 常见实现类如下: ? ArrayList(数组实现):允许对元素进行快