java - Java 中的最大大小列表

标签 java arrays list linked-list

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/

相关文章:

java - 如何通过Java文件运行adb命令?

JavaScript函数参数传递数组

java - 将 JSONObject 放入 JSONArray 或相反将额外的反斜杠添加到 JSON 数组 - Android

javascript - 创建数组并跳过空字段

c# - 将枚举转换为列表

javascript - Material UI 列表组件不显示

java - 如何在不引起重复的情况下查找和替换

java - 使用 java 使用另一个 AD 中的用户在 AD 中进行搜索

java - 使用for循环在地面上绘制方 block

python - 如何在线程之间共享对象?