Ir al contenido

Subarray en Java

En este ejemplo vamos a ver cómo podemos obtener un subarray en Java. La idea es, que a partir de un array original, obtengamos otro que sea conformado por parte del array inicial.

La idea es crear un método que nos permita devolver un subarray enviándole el array inicial y los puntos desde y hasta con los que queremos conformar el subarray. Así la signatura de este método será la siguiente:

public static<T> T[] subarray (T[] array, int inicio, int fin) {}

Por un lado podemos observar que tanto el array original que se le pasa como el subarray que se devuelve como retorno están identificados del tipo genérico para que podamos utilizar el método con cualquier tipo de dato que albergue el array. Por otro vemos que hay dos valores de inicio a fin en los cuales indicaremos la posición inicial y final del array que conformará el subarray de retorno. Para poder implantar el método vamos a apoyarnos en la clase Arrays, la cual nos ofrece el método .copyOfRange(). Dicho método lo que hace es devolver una copia de un array desde una posición inicial hasta una posición final. Justo los parámetros que entraban en nuestro método. Así la codificación del mismo quedará de la siguiente manera:

public static<T> T[] subarray (T[] array, int inicio, int fin) {
return Arrays.copyOfRange(array,inicio-1,fin);
}

Directamente devolvemos el array que es resultado de la ejecución del método .copyOfRange() para que sea utilizado al invocarlo.

Ahora vamos a preparar los elementos que nos permiten ejecutar dicho método. Lo primero será definir un array origen:

Integer[] numeros = {1,2,3,4,5,6,7,8,9,10};

En este caso hemos creado un array de números Integer, aunque, como habíamos dicho con anterioridad, el método .subarray() acepta tipos de datos genéricos por lo que podríamos haberlo definido de cualquier otro tipo. Lo siguiente será definir la variable que contenga el subarray. Esta variable la vamos a instanciar directamente con el array que nos devuelve el método .subarray().

Integer[] parcial = subarray(numeros,1,4);

Si observamos el código veremos que hemos creado un subarray en Java que va desde la primera posición hasta la cuarta posición. Podemos recorrer el array para observar que se han insertado los números que están entre estas dos posiciones:

for (int x=0;x<parcial.length;x++){
System.out.println(parcial[x]);
}

De esta forma tan sencilla hemos construido un método que nos permite obtener un subarray en Java independientemente del tipo de datos con el que hayamos definido el array.

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Subarray en Java

Utilización del método .copyOfRange() para poder definir un método qe nos devuelva un subarray en Java independientemente del tipo de datos.

Descargar código
Pon a prueba tu conocimiento
Arrays en Java

¿Cuál de las siguientes opciones inicializa correctamente un array de String con 3 elementos?

  • A String[] nombres = {"Ana", "Luis", "Carlos"};
  • B String nombres[] = new String[3] {"Ana", "Luis", "Carlos"};
  • C String nombres = ["Ana", "Luis", "Carlos"];
  • D String[] nombres = new String(3);