LinkedList?import java.util.LinkedList;
public class DataStreamBuffer {
private final int maxSize;
private LinkedList<Integer> buffer = new LinkedList<>();
public DataStreamBuffer(int maxSize) {
this.maxSize = maxSize;
}
// 添加新数据,并保持最多 maxSize 条记录
public void addData(int data) {
buffer.addLast(data);
if (buffer.size() > maxSize) {
buffer.removeFirst(); // 删除最老的一条数据
}
}
// 获取当前缓冲区内容
public void printCurrentBuffer() {
System.out.println("当前缓冲区内容: " + buffer);
}
public static void main(String[] args) {
DataStreamBuffer buffer = new DataStreamBuffer(5);
for (int i = 1; i <= 10; i++) {
buffer.addData(i);
buffer.printCurrentBuffer();
}
}
}当前缓冲区内容: [1]
当前缓冲区内容: [1, 2]
...
当前缓冲区内容: [6, 7, 8, 9, 10]LinkedList?import java.util.LinkedList;
import java.util.Queue;
class Task {
private String name;
public Task(String name) {
this.name = name;
}
public void execute() {
System.out.println("正在执行任务: " + name);
try {
Thread.sleep(1000); // 模拟执行耗时
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
public class TaskScheduler {
private Queue<Task> taskQueue = new LinkedList<>();
public void addTask(Task task) {
taskQueue.offer(task);
}
public void startProcessing() {
while (!taskQueue.isEmpty()) {
Task task = taskQueue.poll();
task.execute();
}
System.out.println("所有任务已执行完毕");
}
public static void main(String[] args) {
TaskScheduler scheduler = new TaskScheduler();
scheduler.addTask(new Task("任务A"));
scheduler.addTask(new Task("任务B"));
scheduler.addTask(new Task("任务C"));
scheduler.startProcessing();
}
}正在执行任务: 任务A
正在执行任务: 任务B
正在执行任务: 任务C
所有任务已执行完毕场景 | 使用 | 建议 |
|---|---|---|
处理数据流 | 插入/删除高效,适合滑动窗口 | 可结合定时任务实现自动清理 |
任务调度器 | FIFO/LIFO 调度方便,任务管理灵活 | 可配合线程池实现并发执行 |
ConcurrentLinkedDeque。PriorityQueue 替代 LinkedList。DelayQueue 或 ScheduledExecutorService。LinkedList 是理想选择;若频繁随机访问,考虑 ArrayList。原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。