In the reducer, the MapReduce API provides you with an iterator over Writable values. Calling the
next () method:
Returns a reference to a different Writable object each time.
Returns a reference to a Writable object from an object pool.
Returns a reference to the same writable object each time, but populated with different data.
Returns a reference to a Writable object. The API leaves unspecified whether this is a reused
object or a new object.
Returns a reference to the same writable object if the next value is the same as the previous
value, or a new writable object otherwise.
Calling Iterator.next() will always return the SAME EXACT instance of IntWritable,
with the contents of that instance replaced with the next value.
Reference:manupulating iterator in mapreduce