import java.util.LinkedList;
public class LimitedQueue<T> {
private LinkedList<T> queue = new LinkedList<>();
private int maxSize;
public LimitedQueue(int maxSize) {
this.maxSize = maxSize;
}
public synchronized void add(T item) {
if (queue.size() >= maxSize) {
queue.poll(); // 移除队列头部的元素
}
queue.offer(item); // 将元素添加到队列尾部
}
public synchronized T poll() {
return queue.poll(); // 移除并返回队列头部的元素
}
public synchronized boolean isEmpty() {
return queue.isEmpty();
}
public synchronized int size() {
return queue.size();
}
// 可以根据需要添加其他方法,如获取队列头部元素等
}
一个自定义队列的类。
public class Main {
public static void main(String[] args) {
LimitedQueue<Integer> queue = new LimitedQueue<>(10);
// 添加数据到队列
for (int i = 1; i <= 15; i++) {
queue.add(i);
}
// 获取队列中的数据
while (!queue.isEmpty()) {
System.out.println(queue.poll());
}
}
}
主类进行调用。
这是一个小例子,用来完成网络信号波动的的判断。