我有一个输入流,它每 1 秒为我提供一个新字符串。我想存储 25 个最近的字符串以便随时访问。我在 Java 中工作,不想使用公共库之外的任何东西。我更愿意为此实现创建一个单独的类。
举个例子:
String a = "string a";
String b = "string b";
String c = "string c";
...
storedStrings[0] = c;
storedStrings[1] = b;
storedStrings[2] = a;
当 String d = "string d" 到达时,我希望 storedStrings 像这样移动:
storedStrings[0] = d;
storedStrings[1] = c;
storedStrings[2] = b;
storedStrings[3] = a;
在我加载了 25 个字符串之后,我不再关心 String a 的值,它应该被丢弃以免占用内存。我试过 ArrayList 并没有成功。这是 Vector 的用例吗?
请给我指出正确的方向!
使用 LinkedList 更新我实施的解决方案:
public static void addToQueue(String s){
if (list == null) list = new LinkedList<>();
list.addFirst(s);
System.out.println(s);
if (list.size() > 25) {
list.removeLast();
}
}