固定长度数据实现循环队列-disruptor就是循环数组

tech2026-02-01  5

@ToString public static class cyclicQueue{ int size; int limit; int[] arr ; int pullI; int pollI; public cyclicQueue(int limit) { this.limit = limit; arr=new int[limit]; pollI=0; pullI=0; } public void pull(int x){ if(size==limit){ throw new RuntimeException("over size!"); } size++; arr[pullI] = x; pullI=plusOne(pullI,limit); } public int poll(){ if(size==0){ throw new RuntimeException("no ele!"); } size--; int x=arr[pollI]; arr[pollI]=0; pollI=plusOne(pollI,limit); return x; } private int plusOne(int x,int limit){ return (x+1)==limit?0:x+1; } }

算法之数据结构:固定长度数据实现循环队列

最新回复(0)