gpt4 book ai didi

collections - Java中的有限大小集合

转载 作者:行者123 更新时间:2023-12-04 03:17:37 30 4
gpt4 key购买 nike

如果我想要类似 Size-limited queue that holds last N elements in Java 的东西,我应该使用 java 中的哪种集合类型.

我有一个列表,我想将列表的大小限制为“100”。所以如果我在列表中添加第 101 个元素,第一个元素应该被自动删除 (FIFO)。例如:

List<Item> items = ??;
items.add(item_1);
...
items.add(item_101); // implicitly calls items.remove(0);
items.add(item_102); // implicitly calls items.remove(0);

最佳答案

实际上,您可以尝试在 5 分钟内编写自己的代码,这是我提供的非常肮脏的草图:

static class LFUList<T> extends AbstractCollection<T> {

private final int size;

private ArrayDeque<T> deque;

public LFUList(int size) {
super();
this.size = size;
deque = new ArrayDeque<>(size);
}

@Override
public Iterator<T> iterator() {
return deque.iterator();
}

@Override
public int size() {
return deque.size();
}

@Override
public boolean add(T e) {
if (deque.size() == size) {
deque.pollFirst();
}
return deque.add(e);
}

@Override
public boolean remove(Object o) {
return deque.remove(o);
}

}

关于collections - Java中的有限大小集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235361/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com