new elements to the array list before the array must be replaced again this simple fact allows us to show that performing series of operations on an initially empty array list is actually quite efficient as shorthand notationlet us refer to the insertion of an element to be the last element in an array list as push operation (see figure figure running times of series of push operations on java util arraylist of initial size using an algorithmic design pattern called amortizationwe can show that performing sequence of such push operations on an array list implemented with an extendable array is actually quite efficient to perform an amortized analysiswe use an accounting technique where we view the computer as coin-operated appliance that requires the payment of one cyber-dollar for constant amount of computing time when an operation is executedwe should have enough cyberdollars available in our current "bank accountto pay for that operation' running time thusthe total amount of cyber-dollars spent for any computation will be proportional to the total time spent on that computation the beauty of using this analysis method is that we can overcharge some operations in order to save up cyber-dollars to pay for others