java中queue的常用方法


LinkedList是Queue的实现类,可以如下声明:

Queue<String> queue = new LinkedList<String>();

offer,add 区别:

一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,多出的项就会被拒绝。

这时新的 offer 方法就可以起作用了。它不是对调用 add() 方法抛出一个 unchecked 异常,而只是得到由 offer() 返回的 false。

poll,remove 区别:

remove() 和 poll() 方法都是从队列中删除第一个元素。remove() 的行为与 Collection 接口的版本相似, 但是新的 poll() 方法在用空集合调用时不是抛出异常,只是返回 null。因此新的方法更适合容易出现异常条件的情况。

peek,element区别:

element() 和 peek() 用于在队列的头部查询元素。与 remove() 方法类似,在队列为空时, element() 抛出一个异常,而 peek() 返回 null。

常用操作(注意只有Deque及其子类才可以使用,详情看源码)

操作头 操作头 操作尾 操作尾
会抛异常 不会抛异常 会抛异常 不会抛异常
插入 addFirst(e) offerFirst(e) addLast(e) offerLast(e)
删除 removeFirst() pollFirst() removeLast() pollLast()
取值 getFirst() peekFirst() getLast() peekLast()

Deque实现队列操作:

操作 队列方法 相同操作方法
会抛异常
入队 add(e) addLast(e)
出队 remove() removeFirst()
得到队头的引用 element() getFirst()
不会抛异常
入队 offer(e) offerLast(e)
出队 poll() pollFirst()
得到队头的引用 peek() peekFirst()

用Deque可以实现Stack的功能:

注意采用的是头插法,所以出栈也是从头出的
存在下列方法,功能一样,名称有区别:
push(E e) : addFirst(E e)
pop() : removeFirst()
peek() : peekFirst()
Java使用Deque实现栈的功能,注意只调用push / pop /peek 即可,避免调用Deque的其它方法

Map中定义的方法:

添加、删除、修改操作:
Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
void putAll(Map m):将m中的所有key-value对存放到当前map中
Object remove(Object key):移除指定key的key-value对,并返回value
void clear():清空当前map中的所有数据
元素查询的操作:
Object get(Object key):获取指定key对应的value
boolean containsKey(Object key):是否包含指定的key
boolean containsValue(Object value):是否包含指定的value
int size():返回map中key-value对的个数
boolean isEmpty():判断当前map是否为空
boolean equals(Object obj):判断当前map和参数对象obj是否相等
元视图操作的方法:
Set keySet():返回所有key构成的Set集合
Collection values():返回所有value构成的Collection集合
Set entrySet():返回所有key-value对构成的Set集合

总结:常用方法:
添加:put(Object key,Object value)
删除:remove(Object key)
修改:put(Object key,Object value)
查询:get(Object key)
长度:size()
遍历:keySet() / values() / entrySet()


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM