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次时,第一个元素不会被删除。
请提供解决方案
答案 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;,这不太清楚。