question: SparseArray ( Class < L > linearArrayType , int [ ] rowIndices , int [ ] colIndices , L realValues , L imagValues , int numRows , int numCols ) { validateUserSuppliedParameters ( linearArrayType , rowIndices , colIndices , realValues , imagValues ) ; _baseComponentType = linearArrayType . getComponentType ( ) ; _outputArrayType = ( Class < L [ ] > ) ArrayUtils . getArrayClass ( _baseComponentType , 2 ) ; Map < SparseKey , SparseValue > sparseMap = createSparseMap ( linearArrayType , rowIndices , colIndices , realValues , imagValues , numRows , numCols ) ; _numRows = numRows ; _numCols = numCols ; ArrayList < SparseKey > keys = new ArrayList < SparseKey > ( sparseMap . keySet ( ) ) ; Collections . sort ( keys ) ; _rowIndices = new int [ keys . size ( ) ] ; _colIndices = new int [ keys . size ( ) ] ; _linearIndices = new int [ keys . size ( ) ] ; _realValues = linearArrayType . cast ( Array . newInstance ( _baseComponentType , keys . size ( ) ) ) ; _imagValues = imagValues == null ? null : linearArrayType . cast ( Array . newInstance ( _baseComponentType , keys . size ( ) ) ) ; for ( int i = 0 ; i < keys . size ( ) ; i ++ ) { SparseKey key = keys . get ( i ) ; _rowIndices [ i ] = key . row ; _colIndices [ i ] = key . col ; _linearIndices [ i ] = key . linearIndex ; SparseValue value = sparseMap . get ( key ) ; setSparseValue ( value , _realValues , _imagValues , i ) ; } }
target:  Data provided by a user; this data needs to be validated and processed.