I felt a bump was in order for this one...
> Unfortunately, the implementation of ArrayList<T> looks
> [something] like this--
Doesn't seem unfortunate to me; as long as the state is persisted and can be recovered from the flattened representation of the object, it doesn't matter which approach is taken to serialize the object. In this case, the implementer chose not to serialize the array which backs the ArrayList but the individual elements for obvious reasons [hint: the size of the array is not always equal to the number of elements in the ArrayList ].
The only thing you need to look out for is that the objects contained in the ArrayList can be serialized [the concrete class implements either Serializable or Externalizable ].
If my memory serves me right, you posted something along the same lines in a thread you created; maybe it's time to go back and edit it. :-)