From 7f2edc4bf3b3d2ac429abb9a06ac7f425b2a01fd Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 28 十二月 2022 09:00:42 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/News.java | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/zy/core/News.java b/src/main/java/com/zy/core/News.java
index ce0133c..47b3c24 100644
--- a/src/main/java/com/zy/core/News.java
+++ b/src/main/java/com/zy/core/News.java
@@ -39,19 +39,25 @@
public NewsQueue(Class<T> cls, int capacity) {
this.cls = cls;
- arr = (T[]) Array.newInstance(cls, capacity);
+ this.arr = (T[]) Array.newInstance(cls, capacity);
this.capacity = capacity;
}
public synchronized boolean offer(T t) {
if (this.tail == this.capacity) {
+ this.peek();
+ }
+ this.reform();
+ this.arr[this.tail] = t;
+ this.tail ++;
+ return true;
+ }
+
+ public synchronized boolean put(T t) {
+ if (this.tail == this.capacity) {
return false;
} else {
- for (int i = this.head; i < this.tail; i++) {
- this.arr[i-this.head] = this.arr[i];
- }
- this.tail -= this.head;
- this.head = 0;
+ this.reform();
}
this.arr[this.tail] = t;
this.tail ++;
@@ -64,9 +70,18 @@
}
T t = this.arr[this.head];
this.head ++;
+ this.reform();
return t;
}
+ private void reform() {
+ for (int i = this.head; i < this.tail; i++) {
+ this.arr[i-this.head] = this.arr[i];
+ }
+ this.tail -= this.head;
+ this.head = 0;
+ }
+
public synchronized int size() {
return this.tail - this.head;
}
--
Gitblit v1.9.1