网站作风建设年专栏,空间设计网站大全,扬州、常州、扬州、泰州,手机个别网页打不开无界队列
public class Task implements Runnable, ComparableTask{private int priority; // 优先级别public Task(int priority) {this.priority priority;}// 当前对象和其他对象作比较, 当前优先级大就返回-1, 优先级小就返回1, 值越小, 优先级越高.Overridepubl…无界队列
public class Task implements Runnable, ComparableTask{private int priority; // 优先级别public Task(int priority) {this.priority priority;}// 当前对象和其他对象作比较, 当前优先级大就返回-1, 优先级小就返回1, 值越小, 优先级越高.Overridepublic int compareTo(Task o) {return Integer.compare(this.priority, o.priority);}Overridepublic void run() {System.out.println(任务被处理了);}public int getPriority() {return priority;}
}
LinkedBlockingDeque
package com.qf.queue;import java.util.Iterator;
import java.util.concurrent.LinkedBlockingDeque;public class Test01 {/*知识点: 无界队列理解: 这个队列没有上限继承关系: LinkedBlockingQueue - AbstractQueue - AbstractCollection小结:1. LinkedBlockingQueue 是Collection 集合家族的一员.2. Collection 集合家族(List, Set, Queue)3. LinkedBlockingQueue 数据结构是单向链表缺点:LinkedBlockingQueue 可能造成内存溢出*/public static void main(String[] args) {// 创建无界队列LinkedBlockingDequeString queue new LinkedBlockingDeque();queue.push(aaa);queue.push(bbb);queue.push(ccc);queue.push(ddd);// 删除元素queue.remove(ccc);// 遍历队列IteratorString it queue.iterator();while (it.hasNext()) {String next it.next();System.out.println(next);}}
}ArrayBlockingQueue
import java.util.Iterator;
import java.util.concurrent.ArrayBlockingQueue;public class Test02 {public static void main(String[] args) throws InterruptedException{// 创建有界队列ArrayBlockingQueueString queue new ArrayBlockingQueue(6);// 添加元素queue.put(aaa);queue.put(bbb);queue.put(ccc);queue.put(ddd);// 删除元素queue.remove(ccc);// 遍历队列IteratorString iterator queue.iterator();while (iterator.hasNext()) {String next iterator.next();System.out.println(next);}}
}
PriorityQueue
import java.util.PriorityQueue;public class Test03 {/*知识点: 优先队列继承关系:ArrayBlockingQueue - AbstractQueue - AbstractCollection小结:1. ArrayBlockingQueue 是 collection 家族的一员2. Collection 集合家族 (List, Set, Queue)3. ArrayBlockingQueue 数据结构 一维数组*/public static void main(String[] args) {// 创建优先队列PriorityQueueTask queue new PriorityQueue();// 添加元素queue.add(new Task(1));queue.add(new Task(2));queue.add(new Task(3));queue.add(new Task(4));// 遍历取出while (!queue.isEmpty()) {// 删除第一元素Task poll queue.poll();System.out.println(poll.getPriority());}}
}