, , , . count , , , . , count .
-, count , false, true. add, remove .. false.
- :
Class CachedCount
int count = 0;
boolean count_is_valid = false;
int getCount()
if count_is_valid
return count;
else
count = calculate_count();
count_is_valid = true;
return count;
void Add(item)
count_is_valid = false;
...
...
: , count add, remove .. add, remove .. count. , . : add, add, add, remove, remove, add, count, count, count, count, count, count, add, count, add, count, remove, count, remove, count, add, count.