限制固定长度的队列结构
来源:互联网 发布:如何制作淘宝数据包 编辑:程序博客网 时间:2024/06/06 07:57
在一个固定长度的集合里,当收到新的数据时自动丢掉最旧的数据。
/** * Created by Owen Chan * On 2017-05-10. */public class LimitQueue<E> { private int limitedSize; private LinkedList<E> linkedList = new LinkedList<>(); public LimitQueue(int size) { this.limitedSize = size; } public void offer(E e) { if (linkedList.size() >= limitedSize) { linkedList.poll(); } linkedList.offer(e); } public E get(int position) { return linkedList.get(position); } public E getLast() { return linkedList.getLast(); } public E getFirst() { return linkedList.getFirst(); } public int getLimit() { return limitedSize; } public void setLimitedSize(int size) { this.limitedSize = size; } public int size() { return linkedList.size(); } @Override public String toString() { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < linkedList.size(); i++) { buffer.append(linkedList.get(i)); buffer.append(" "); } return buffer.toString(); }}
测试方法:
public class UtilTest { public static void main(String args[]) { LimitQueue<String> limitQueue = new LimitQueue<>(3); limitQueue.offer("a"); System.out.println(limitQueue.toString()); limitQueue.offer("b"); System.out.println(limitQueue.toString()); limitQueue.offer("c"); System.out.println(limitQueue.toString()); limitQueue.offer("d"); System.out.println(limitQueue.toString()); limitQueue.offer("e"); System.out.println(limitQueue.toString()); limitQueue.offer("f"); System.out.println(limitQueue.toString()); limitQueue.offer("g"); System.out.println(limitQueue.toString()); }}
输出结果:
a a b a b c b c d c d e d e f e f g
0 0
- 限制固定长度的队列结构
- LimitQueue一个限制固定长度的队列结构
- 实现一个固定长度的集合队列
- (Java)固定长度队列的实现
- 固定长度的List
- 限制TextBox的长度
- 限制的长度
- 限制TextBox的长度
- 输入长度的限制
- 限制textarea的长度
- 限制UITextField的长度
- 限制TextField的长度
- 自定义队列(优化了数组固定长度的弊端)以及集合中的一些重点内容
- 固定长度的内存池
- 详释(常见UITextView输入之字数限制)之一固定长度
- 数组实现的队列(限制最大长度)的head、tail指针的修改方法。
- 测试队列的长度
- Java简单实现固定长度队列(FIFO)
- Mysql 数据库几种引擎的区别比较
- Android HTTPS如何10分钟实现自签名SSL证书
- K-近邻算法简介
- 泛型算法以及lamda表达式
- set的三种遍历方式,set遍历元素
- 限制固定长度的队列结构
- 1081. Rational Sum (20)
- 那些对你技术成长非常有益的网页
- Linux驱动开发———混杂设备驱动模型
- 安卓开发:调用系统图片选择器
- 网站教程
- 流程银行(模式、目标、思路)
- Maven快速入门
- 将android布局中自带的标题栏去掉