本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sichunli_030
- sam123456gz
- arpenker
- tanling8334
- kaizi1992
- gaojingsong
- 龙儿筝
- xpenxpen
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
jdk源码分析ArrayDeque
ArrayDeque
数组循环队列,这个数据结构设计的挺有意思的。
据说此类很可能在用作堆栈时快于 Stack,在用作队列时快于 LinkedList。
一、容量
1.1默认容量是8=2^3
1.2指定初始化容容量
public ArrayDeque(int numElements) {
allocateElements(numElements);
...
List接口的实现类LinkedList
LinkedList类是List接口的实现类,这意味着它是一个List集合,可以根据索引来随机访问集合中的元素。除此之外,LinkedList还实现了Deque接口,可以被当成双端队列使用,因此既可以被当成“栈”来使用,也可以当成队列使用。
1 代码示例
import java.util.*;
public class LinkedListTest
{
publi ...
ArrayDeque集合的妙用
Deque接口是Queue接口的子接口,它代表一个双端队列,该队列允许从两端来操作队列中的元素。Deque不仅可以当成双端队列使用,而且可以当成栈来使用。
ArrayDeque集合是Deque接口的实现类,它是一个基于数组的双端队列,创建Deque时同样可以指定一个numElements参数,该参数用于指定Object[]数组的长度;如果不指定该参数,Deque ...
Java实现一个简单的队列
队列遵循先进先出的原则,下面看看简单的Demo实例。
package com.tu.test.queue;
public class Node {
int data;
Node next;//next node
public Node(int data){
this.data = data;
}
}
package com.tu.test.queue;
...
java高并发编程:4--Java中的阻塞队列
1. 什么是阻塞队列?
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。阻塞队列就是生产者存放元素的容器,而消费者也只从容器里拿元素。
阻塞队列提供了四种处理方法:
...
数据结构与算法-队列
数据结构与算法-队列
一、概述
队列也是一种表,是一种先进先出、从队头删除、从队尾删除的一种数据结构。队列这种数据结构在实际的项目中用的也是比较多,比如消息中间件 消息队列等。队列的插入我们称为入队操作。从队列中移除我们称为出队操作。队列和栈一样每个操作都是O(1)
队列的基本操作有:
1、初始化队列
...
BlockQueue之ArrayBlockingQueue源码解析
前面我们介绍的LinkedBlockingQueue的源码,这篇文章我们一起研究下ArrayBlockingQueue的源码
(1)LinkedBlockingQueue源码解析
(2)ArrayBlockingQueue源码解析
...
BlockQueue之LinkedBlockingQueue源码解析
最近在研究blockqueue的源码,从今天开始,和大家分享一下我看源码的一些心得体会
(1)LinkedBlockingQueue源码解析
(2)ArrayBlockingQueue源码解析
LinkedBlockingQueue实现了BlockingQueue接口以及Serializable接口,是有序的FIFO队列,构造函数中,可传 ...
Java中队列FIFO(First-In-First-Out),栈LIFO(Last-In-First-Out)的实现
Deque接口定义了QUEUE(First-In-First-Out)的功能,同时也定义了Stack(Last-In-First-Out)的功能。
java.util.Deque<E>
A linear collection that supports element insertion and removal at both ends. The name deque is short ...
Implement Queue using Stacks
Implement the following operations of a queue using stacks.
push(x) -- Push element x to the back of queue.
pop() -- Removes the element from in front of queue.
peek() -- Get the front element.
empty( ...
Implement Stack using Queues
Implement the following operations of a stack using queues.
push(x) -- Push element x onto stack.
pop() -- Removes the element on top of the stack.
top() -- Get the top element.
empty() -- Return whet ...
简析LinkedBlockingQueue类
此类实现了BlockingQueue接口,同时继承了父类AbstractQueue,父类里实现了几个基本方法的调用
add(E e),通过子类的offer(e)具体实现
remove(),通过子类的poll()具体实现
element(),通过子类的peek()具体实现,这几个是常用方法
在LinkedBlockingQueue中,先定义了个Node内部类,这个类是队列中存储的具体的节点类,所以的通 ...