java隊列
Ⅰ 在java中,什麼是隊列
好比現實生活中排隊先進先出
Ⅱ java中的隊列都有哪些
常見的有:
有界隊列:
ArrayBlockingQueue
LinkedBlockingQuene
priorityBlockingQuene(具有優先順序的隊列)
無界隊列:
SynchronousQuene
Ⅲ java隊列類
什麼隊列,消息隊列還是什麼隊列,還是就是一個Queue?
如果是Queue,java已經有實現好的了
可以參看
java.util.Queue
java.util.concurrent.ThreadPoolExecutor
相關知識
Ⅳ 什麼是隊列,如何快速 編寫一個java的隊列類
import java.util.*;
public class MyQueue<T> {
private LinkedList<T> list = new LinkedList<T>();
public void addLast(T v) {
list.addLast(v); //隊尾插入
}
public T getFirst() {
return list.getFirst(); //取得隊受元素
}
public void remove() {
list.removeFirst(); //移除隊首元素
}
//類似功能自己擴展下
public static void main(String[] args) {
MyQueue<String> mq = new MyQueue<String>();
mq.addLast("hello world");
mq.addLast("hello world2");
System.out.println(mq.getFirst());
mq.remove();
System.out.println(mq.getFirst());
}
}
Ⅳ java中的隊列都有哪些,有什麼區別
阻塞隊列、普通隊列,非阻塞隊列。
阻塞隊列與普通隊列的而區別在於,當隊列是空時,從隊列中獲取元素的操作會被阻塞,或則當隊列是滿的時,往隊列中增加元素會被阻塞,試圖從空的隊列中取元素的線程或從滿的隊列中添加元素的線程同樣會被阻塞。
Ⅵ 怎樣用java代碼實現一個隊列
class Stack<T> {
private Vector<T> v;
public Stack(){
v = new Vector<T>();
}
public T pop(){
if (v.size()==0) return null;
return v.get(v.size()-1);
}
public void push(T t){
v.add(t);
}
public boolean isEmpty(){
return v.size()==0;
}
}
class Queue<T>{
private Vector<T> v;
public Queue(){
v = new Vector<T>();
}
//入隊列
public void enqueue(T t){
v.add(t);
}
//出隊列
public T dequeue(){
if (v.size()==0) return null;
return v.get(0);
}
public boolean isEmpty(){
return v.size() == 0;
}
}
Ⅶ 用java實現循環隊列
簡單寫了下,希望你能看明白
import java.util.ArrayList;
public class SeqQueue {
ArrayList<String> list;
public SeqQueue() {
list = new ArrayList<String>();
}
public String getFirst() {
if (!list.isEmpty()) {
String s = list.get(0);
list.remove(0);
return s;
}
return null;
}
public void insertLast(String s) {
list.add(s);
}
public static void main(String[] args) {
SeqQueue seq = new SeqQueue();
seq.insertLast("111");
seq.insertLast("222");
seq.insertLast("333");
System.out.println(seq.getFirst());
System.out.println(seq.getFirst());
System.out.println(seq.getFirst());
}
}
Ⅷ java中怎麼實現隊列
public class Queue<E> {
private Object[] data=null;
private int maxSize; //隊列容量
private int front; //隊列頭,允許刪除
private int rear; //隊列尾,允許插入
//構造函數
public Queue(){
this(10);
}
public Queue(int initialSize){
if(initialSize >=0){
this.maxSize = initialSize;
data = new Object[initialSize];
front = rear =0;
}else{
throw new RuntimeException("初始化大小不能小於0:" + initialSize);
}
}
//判空
public boolean empty(){
return rear==front?true:false;
}
//插入
public boolean add(E e){
if(rear== maxSize){
throw new RuntimeException("隊列已滿,無法插入新的元素!");
}else{
data[rear++]=e;
return true;
}
}
//返回隊首元素,但不刪除
public E peek(){
if(empty()){
throw new RuntimeException("空隊列異常!");
}else{
return (E) data[front];
}
}
//出隊
public E poll(){
if(empty()){
throw new RuntimeException("空隊列異常!");
}else{
E value = (E) data[front]; //保留隊列的front端的元素的值
data[front++] = null; //釋放隊列的front端的元素
return value;
}
}
//隊列長度
public int length(){
return rear-front;
}
}
Ⅸ java 隊列
java類庫有Queue類,但是如果樓主想自己定義隊列的話,可以模仿C++指針定義隊列的方式。java和C#雖然沒有指針,但是它們的對象默認都是傳引用的,也就像指針傳遞地址一樣,呵呵。