java队列有哪些,java本地队列( 二 )
//循环队列
head=(head+1)%data.length;
size--;
return ele;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
}
通过向量实现:
//通过向量实现栈
package 队列和堆栈;
import java.util.*;
public class VectorStackTest {
//字段
Vector v;
//构造函数
public VectorStackTest()
{
v=new Vector();
}
//元素的个数
public int size()
{
return v.size();
}
//是否为空
public boolean isEmpty()
{
return size()==0;
}
//进栈
public Object Push(Object obj)
{
v.addElement(obj);
return obj;
}
//出栈方法
public Object Pop()
{
int len=size();
Object obj=Peek();
v.removeElementAt(len-1);
return obj;
}
//查看栈顶元素
public Object Peek()
{
int len = size();
if (len == 0)
throw new EmptyStackException();
return v.elementAt(len - 1);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
VectorStackTest vst=new VectorStackTest();
System.out.println("大小:"+vst.size());
vst.Push("123");
vst.Push("456");
vst.Push("789");
vst.Push("abc");
System.out.println("大小:"+vst.size());
System.out.println("栈顶:"+vst.Peek());
System.out.println("出栈:"+vst.Pop());
vst.Push("def");
vst.Push("147");
System.out.println("大小:"+vst.size());
System.out.println("栈顶:"+vst.Peek());
System.out.println("出栈:"+vst.Pop());
System.out.println(vst.Peek());
vst.Push("def");
vst.Push("147");
System.out.println(vst.Pop());
System.out.println(vst.Pop());
System.out.println(vst.Peek());
System.out.println(vst.Pop());
System.out.println(vst.Pop());
vst.Push("1aadf");
vst.Push("2dafad");
vst.Push("123789");
System.out.println(vst.Pop());
System.out.println(vst.Peek());
System.out.println(vst.Pop());
System.out.println(vst.Peek());
System.out.println("------------------end------------");
VectorStackTest llst=new VectorStackTest();
llst.Push("123");
llst.Push("456");
System.out.println("栈顶:"+llst.Peek());
System.out.println("出栈:"+llst.Pop());
System.out.println(llst.Peek());
llst.Push("789");
llst.Push("abc");
System.out.println("栈顶:"+llst.Peek());
System.out.println("出栈:"+llst.Pop());
System.out.println(llst.size());
System.out.println("栈顶:"+llst.Peek());
}
}
推荐:都看API文档 。 有疑问可以问我, QQ:285479197
java 队列 什么队列, 消息队列还是什么队列, 还是就是一个Queue?
如果是Queue, java已经有实现好的了
可以参看
java.util.Queue
java.util.concurrent.ThreadPoolExecutor
相关知识
JAVA中, 常用的队列实现是哪个? 阻塞队列与普通队列的区别在于, 当队列是空的时, 从队列中获取元素的操作将会被阻塞, 或者当队列是满时, 往队列里添加元素的操作会被阻塞 。 试图从空的阻塞队列中获取元素的线程将会被阻塞, 直到其他的线程往空的队列插入新的元素 。 同样, 试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞, 直到其他的线程使队列重新变得空闲起来, 如从队列中移除一个或者多个元素, 或者完全清空队列.
从5.0开始, JDK在java.util.concurrent包里提供了阻塞队列的官方实现 。 尽管JDK中已经包含了阻塞队列的官方实现, 但是熟悉其背后的原理还是很有帮助的 。 一下是阻塞队列的实现:
public class BlockingQueue {
private List queue = new LinkedList();
private int limit = 10;
public BlockingQueue(int limit){
this.limit = limit;
}
public synchronized void enqueue(Object item)
throws InterruptedException {
推荐阅读
- java语言的特点有哪些,java语言的关键特点有哪些
- 《穿越火线》6月团队召集币活动开启
- 十年磨一剑!院士团队合力讲好中医药的科学故事
- cba有哪些球队,cba球队有多少只
- 《和平精英》连续5次炸队友后,光子发来的惩罚绝了
- java的基本数据类型有哪些,java的三种基本数据类型
- 好的团队具备哪些特点,团队的优点与不足之处
- 团建活动有哪些,团队建设36个经典活动
- aj有哪些系列,aj全部型号
- 田赛项目有哪些,在参赛队较多的情况下