使用add限制ArrayList的大小

时间:2015-04-14 10:26:30

标签: java

class arrayList extends ArrayList<missedCall>
{
     public boolean add(missedCall m)
     {
        int i=size();
        if(i>10)
            remove(0);
        super.add(m);
        return true;
      }
 }

当我使用用户定义的类add调用arrayList方法11次时,第一个元素不会被删除。

请提供解决方案

2 个答案:

答案 0 :(得分:3)

您的if(i>10)条件仅在第12次调用此方法时才为真,因此调用该方法11次将不会删除第一个元素。

也许您想将自己的状况改为:

if(i>=10)
    remove(0);

答案 1 :(得分:0)

如果在添加后检查的大小,便于阅读:

super.add(m);
if (size() > 10)
    remove(0);

然后你可以保持比较,这是有道理的:&#34;如果这个尺寸太大,减少它&#34;。

这比首先检查更容易理解,这就像&#34;如果 即将添加 #34;,这不太清楚。