是否有任何集合允许我限制允许的元素数量?
我需要的是一个大小为5个元素的集合,当这个集合已满时,可以添加一个新元素,但是这个集合中最旧的元素将被替换为新元素。
答案 0 :(得分:2)
您可以扩展旧的优秀ArrayList(或任何其他最适合您的实现)。
import java.util.ArrayList;
public class LimitedCollection<E> extends ArrayList<E> {
public static final int MAX_ELEMENTS = 2;
@Override
public boolean add(E e) {
if (this.size() < MAX_ELEMENTS) {
return super.add(e);
} else {
return false;
}
}
}
答案 1 :(得分:1)
您可以使用 java.utils包中提供的大多数集合执行此操作。 你可以这样做,列表集合的样本:
List<X> list = Arrays.asList(new X[desiredSize]);
// where X is any Object type (including arrays and enums,
// but excluding primitives)
结果列表是可修改的,但不可调整大小(即添加(e)和删除(e)不起作用,但设置(索引,e)确实如此。
答案 2 :(得分:0)
Guava EvictingQueue或Apache common-collections应该为您完成这项工作。