收藏有限的尺寸

时间:2014-05-29 19:56:31

标签: java collections

是否有任何集合允许我限制允许的元素数量?

我需要的是一个大小为5个元素的集合,当这个集合已满时,可以添加一个新元素,但是这个集合中最旧的元素将被替换为新元素。

3 个答案:

答案 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 EvictingQueueApache common-collections应该为您完成这项工作。