java commons之函数式编程练习_队列

package commons之集合与队列;

import java.util.Queue;

import org.apache.commons.collections4.Predicate;
import org.apache.commons.collections4.functors.NotNullPredicate;
import org.apache.commons.collections4.queue.CircularFifoQueue;
import org.apache.commons.collections4.queue.PredicatedQueue;
import org.apache.commons.collections4.queue.UnmodifiableQueue;

/**

  • Queue队列
  • 1.循环队列
  • 2.只读队列即 不可改变队列
    1. 断言队列
  •  断言:在测试阶段会有这种检查,而在发布阶段能自动删除这些东西。 这就是断言机制。
    

*/
public class Demo02 {

public static void main(String[] args) {
	System.out.println("====循环队列=====");
	circular();
	System.out.println("====只读队列=====");
	//readOnly();报异常;只读无法写入
	System.out.println("====断言队列=====");
	//predicate();//报异常;空的无法写入
}
/**
 * 循环队列
 */
public static void circular(){//circular循环
	//循环队列
	CircularFifoQueue<String> que = new CircularFifoQueue<>(2);
	que.add("a");
	que.add("b");
	que.add("c");
	//查看
	for(int i=0;i<que.size();i++){
		System.out.println(que.get(i));//只能放2个;"c"进来"a"就被覆盖
	}	
}
/**
 * 只读队列
 */
public static void readOnly(){//readOnly()只读
	CircularFifoQueue<String> que = new CircularFifoQueue<>(2);
	que.add("a");
	que.add("b");
	que.add("c");
	Queue<String> readOnlyQue = UnmodifiableQueue.unmodifiableQueue(que);
	//测试
	readOnlyQue.add("d");//"java lang UnsupportedOperationException"不支持的操作异常
}
/** 
 * 断言队列
 */
public static void predicate(){//predicate断言;谓语
	CircularFifoQueue<String> que = new CircularFifoQueue<>(2);
	que.add("a");
	que.add("b");
	que.add("c");
	Predicate notNull = NotNullPredicate.INSTANCE;//INSTANCE实例
	//包装成对应的队列;放入que与notNull
	Queue<String> que2 = PredicatedQueue.predicatedQueue(que, notNull);
	que2.add(null);//报异常;空的无法添加
}

}
//结果--------------------------------------------------
循环队列=
b
c
只读队列=
报异常
断言队列=
报异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值