Having this method available for all is not very efficient, because if I want use this feature I must check for interface SparseRealVector.
otherwise different implementations could be faster.
I.e. no array clone and the assigning all values again.
Maybe one could add a menthod fillstate() to SparseRealVector to guide which is faster - use array clone and then sparseIterator or just create the array and then fill it up.
To reduce confusion a second Interface ArrayRealVector with the method getDataRef() and removing getData() from RealVector would be nice - there is a toArray() this should be sufficient.