commons之集合与队列——高淇JAVA300讲笔记之commons

 1 package com.bjsxt.others.commons;
 2 
 3 import java.util.Queue;
 4 
 5 import org.apache.commons.collections4.Predicate;
 6 import org.apache.commons.collections4.functors.NotNullPredicate;
 7 import org.apache.commons.collections4.queue.CircularFifoQueue;
 8 import org.apache.commons.collections4.queue.PredicatedQueue;
 9 import org.apache.commons.collections4.queue.UnmodifiableQueue;
10 
11 
12 /**
13  * Queue队列
14  * 1、循环队列
15  * 2、只读队列:不可改变队列
16  * 3、断言队列
17  */
18 public class Demo05 {
19     public static void main(String[] args) {
20         circular();
21 //        readOnly();  //会报错,因为只读,不能添加
22 //        predicate();  //会报错,不能添加null
23     }
24     /**
25      * 断言队列
26      */
27     public static void predicate() {
28         //循环队列
29         CircularFifoQueue<String> que = new CircularFifoQueue<String>(2);
30         que.add("a");
31         que.add("b");
32         que.add("c");
33         Predicate notNull = NotNullPredicate.INSTANCE;
34         //包装成对应的队列
35         Queue<String> que2 = PredicatedQueue.predicatedQueue(que,notNull);
36         que2.add(null);
37     }
38     
39     /**
40      * 只读队列
41      */
42     public static void readOnly() {
43         //循环队列
44         CircularFifoQueue<String> que = new CircularFifoQueue<String>(2);
45         que.add("a");
46         que.add("b");
47         que.add("c");
48         Queue<String> readOnlyQue = UnmodifiableQueue.unmodifiableQueue(que);
49         readOnlyQue.add("d");
50     }
51     
52     
53     /**
54      * 循环队列
55      */
56     public static void circular() {
57         //循环队列
58         CircularFifoQueue<String> que = new CircularFifoQueue<String>(2);
59         que.add("a");
60         que.add("b");
61         que.add("c");
62         //查看
63         for(int i=0;i<que.size();i++) {
64             System.out.println(que.get(i));  //结果:b c
65         }
66         
67     }
68 
69 }
原文地址:https://www.cnblogs.com/swimminglover/p/8395238.html