GOOGLE ADS

viernes, 15 de abril de 2022

¿Cómo clono una matriz de bytes de Java?

Tengo una matriz de bytes que quiero copiar/clonar para evitar que el código de llamada modifique mi representación interna.

¿Cómo clono una matriz de bytes de Java?


Solución del problema

JLS 6.4.5 Los miembros de un tipo de matriz

Los miembros de un tipo de matriz son todos los siguientes:


  • El public final field length, que contiene el número de componentes de la matriz (la longitud puede ser positiva o cero).

  • El publicmétodo clone, que anula el método del mismo nombre en la clase Objecty no arroja excepciones comprobadas. El tipo de retorno del método de clonación de un tipo de matriz T[]es T[].

  • Todos los miembros heredados de la clase Object; el único método Objectque no se hereda es su clonemétodo.


Por lo tanto:

byte[] original =...;
byte[] copy = original.clone();

Tenga en cuenta que para la matriz de tipos de referencia, clone()es esencialmente una copia superficial.

Además, Java no tiene arreglos multidimensionales; tiene matriz de matrices. Por lo tanto, a byte[][]es un Object[], y también está sujeto a una copia superficial.

Ver también


  • Copia de Wikipedia/objeto

  • Tuercas y tornillos/matrices de Java


Preguntas relacionadas


  • Arreglos multidimensionales de clonación profunda en Java…?

  • ¿Cómo copiar efectivamente una matriz en Java?

  • Cómo copiar en profundidad una matriz 2D irregular

  • ¿Cómo hago una copia profunda de una matriz 2d en Java?


Otras opciones

Tenga en cuenta que clone()devuelve un nuevo objeto de matriz. Si simplemente desea copiar los valores de una matriz a una matriz ya existente, puede usar, por ejemplo System.arraycopy, (jdk 1.0+).

También hay java.util.Arrays.copyOf (jdk 1.6+) que le permite crear una copia con una longitud diferente (ya sea truncando o rellenando).

Preguntas relacionadas


  • Diferencia entre varios métodos de copia de matriz

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...