How to copy an ArrayCollection by value

I came across the requirement to copy an ArrayCollection by value instead of by reference. Here is the solutions I used:

private var myCollection:ArrayCollection = new ArrayCollection();

for (var k:Number = 0; k < myCurrentCollection.length; k++) { 
 myCollection.addItem(mx.utils.ObjectUtil.copy(myCurrentCollection[k]));
}