Getting unexpected return value when appending to array

Ah, could it be that Processing treats the threeCards object as a pointer, and thus keeps updating its values instead of storing a copy?