Java 环形缓冲器(Ring Buffer)

 环形缓冲器(Ring Buffer):环形队列,这里使用数组实现,但并未用上环形功能,因为设置了队满直接出队清空队列,如果只读取部分数据,又或者想要覆盖冲写,则可以用上环形功能

package chapter1_3;

/**
 * @author : jeasion
 * @name
 * @comment
 * @return
 */
public class practice39 {

}

class RingBuffer<Item> {
	int size;
	int capacity = 100;

	class Node {
		Item item;
		Node next;
	}

	Node[] nodes = (Node[]) new Object[capacity];

	public boolean isFull() {
		return size == (capacity - 1);
	};

	public boolean isEmpty() {
		return size == 0;
	}

	public void enqueue(Item item) {
		nodes[size] = (Node) new Object();
		nodes[size].item = item;
		nodes[size].next = null;
		if (size > 0 && !isFull()) {
			nodes[size - 1].next = nodes[size];
		}
		if (isFull()) {
			nodes[size - 1] = nodes[0];
			System.out.println("缓冲区满,将执行出队操作!");
			dequeue();
		}
	}

	public Item dequeue() {
		Node temp = nodes[size];
		nodes[size].item = null;
		nodes[size--] = null;
		if (isEmpty()) {
			System.out.println("缓冲区已清空,可以执行读入操作!");
		}
		return temp.item;
	}
}

 

全部评论

相关推荐

01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
2024-12-21 10:42
已编辑
江西软件职业技术大学 Java
新宿站不停:该提升学历就提升学历,菜了就多练。没事找牛马公司虐自己是吧? 谁没事说自己“经验少”,这不自己把自己塞剎鼻hr嘴里找🐴吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务