Java 中的数据结构具有列表的所有功能,但具有最大存储容量,并在添加新数据时删除旧数据,这对我很有用。可以想象,在某些时候我可能想要实现一个固定大小的队列,它保持更通用的数据排序,并将旧数据放在该排序中最低的位置,但这是 future 的事。
目前我是这样实现的:
public class FixedSizeList<T> {
private final int maxSize;
private final LinkedList<T> list = new LinkedList<T>();
public FixedSizeQueue(int maxSize) {
this.maxSize = maxSize < 0 ? 0 : maxSize;
}
public T add(T t) {
list.add(t);
return list.size() > maxSize ? list.remove() : null;
}
// add remaining methods...
}
是否有 (a) 满足我需求的现有数据结构,或 (b) 实现此数据结构的更好方法?
最佳答案
我会为列表的头部和尾部使用数组和 2 个索引。确保头部始终是 < 尾部,这样你就安全了。
关于java - Java 中的最大大小列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027995/