¿Qué es el método Java System.arraycopy()?

El método java.lang.System.arraycopy() copia una matriz de origen, en una posición inicial específica, a un destino en un índice dado.
Este método pertenece a la clase java.lang.System . Copia el contenido de un subarreglo de una longitud específica de un arreglo de origen dado a otro arreglo llamado arreglo de destino . La matriz de origen se conoce como src y la matriz de destino como dest . El número de elementos viene dado por el argumento len .

Declaración del método Java System.arraycopy()

La declaración del método para el método java.lang.System.arraycopy() en la clase java.lang es la siguiente:

public static void arraycopy(Object src, int srcIndex, Object dest, int destIndex, int len)

Parámetros

Los siguientes son los parámetros del método arraycopy :
  1. src : Es la matriz de origen.

  2. srcIndex : es el índice de inicio de la matriz de origen.

  3. dest : Es la matriz de destino.

  4. destIndex : Es el índice inicial de la matriz de destino.

  5. len : es la cantidad de elementos que deben copiarse de la matriz de origen a la matriz de destino.

Funcionalidad

El método arraycopy copia datos de src , comenzando desde srcIndex hasta srcIndex +( len - 1) elementos, a la matriz dest en destIndex hasta destIndex + ( len - 1).

Valor de retorno

El método arraycopy tiene un tipo de retorno nulo , lo que significa que no devuelve nada.

Ejemplo


public class Example {

    public static void main(String[] args) {

        String[] src = { "Monday","Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
        String[] dest = { "January", "February", "March", "April", "May", "June", "July", "August"};
  
        int srcIndex = 2;
        int destIndex = 3;
        int len = 2;
        
        //print number of elements that need to be copied 
        //from the source to the destination array  
        System.out.println("len : " + len);
        
        //print source index
        System.out.println("srcIndex : " + srcIndex);
  
        //print elements of the source array
        System.out.print("src : ");
        for (int i = 0; i < src.length; i++)
            System.out.print(src[i] + " ");
        System.out.println("");
  
        //print destination index
        System.out.println("destIndex : " + destIndex); 
        
        //print elements of the destination array
        System.out.print("dest : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
        System.out.println("");
                
        // Use of arraycopy() method
        System.arraycopy(src, srcIndex, dest, destIndex, len); 
        // this method copies the 'len' no of elements 
        // from the src array to the dest array using the srcIndex
        // and destIndex as reference points in both the arrays
        
                        
        // Print elements of destination after  
        System.out.print("final destination array : ");
        for (int i = 0; i < dest.length; i++)
            System.out.print(dest[i] + " ");
    }
}

Producción

longitud: 2 índicesrc: 2 src : Lunes Martes Miércoles Jueves Viernes Sábado Domingo índice de destino: 3 destino : Enero Febrero Marzo Abril Mayo Junio Julio Agosto destino final matriz : Enero Febrero Marzo Miércoles Jueves Junio Julio Agosto

Ejemplo de cambio de parámetros


// Example of changing parameters
         srcIndex = 4;
         destIndex = 5;
         len = 1;

Producción

longitud: 1 índice src: 4 src : Lunes Martes Miércoles Jueves Viernes Sábado Domingo índice de destino: 5 destino : Enero Febrero Marzo Abril Mayo Junio Julio Agosto destino final matriz : Enero Febrero Marzo Abril Mayo Viernes Julio Agosto

Explicación

En el código anterior, hemos definido dos matrices src[] y dest[] . Después de eso, hemos definido srcIndex y destIndex para definir las posiciones de referencia para ambas matrices. En el primer ejemplo , el método System.arraycopy copia los elementos de la matriz de origen src[] , comenzando en el índice 2 y terminando en el índice 3 (porque len = 2), a la matriz de destino, comenzando en el índice 3. Luego genera la matriz de destino final después de copiar los elementos. En el segundo ejemplo , el método System.arraycopy copia 1 elemento (porque len = 1) de la matriz de origensrc[] , a partir del índice 4, a la matriz de destino, a partir del índice 5, y también genera la matriz de destino final después de copiar los elementos.

Conclusión

Al final de esta publicación, esperamos que se haya familiarizado con el método java.lang.System.arraycopy en Java. Sigue practicando para un dominio más profundo del concepto. Hasta entonces, ¡sigue creciendo y sigue brillando!