Cortar un array en Java

  1. Corte de arrays en Java
  2. Cortar un array duplicando elementos en Java
  3. Cortar un array usando el método copyOfRange() en Java
  4. Cortar un array usando el flujo de Java 8

Este artículo lo ayudará a dividir un array en un subarray en Java.

¿Por qué nuestros beagles engorda...
¿Por qué nuestros beagles engordan? 🩹

Corte de arrays en Java

Array slicing es una técnica de Java para extraer un subarray de un array más extenso.

Suponga que k[] es un array. Tiene 7 componentes, numerados de k[0] a k[6].

k[] = {5, 6, 7, 8, 9, 10, 11}

Ahora, estamos buscando una porción del índice del array entre k[2] y k[5]. El startIndex es k[2], mientras que el endIndex es k[5].

Como resultado, obtenemos la siguiente matriz cortada:

k[] = {7, 8, 9, 10}

En las siguientes secciones, aprenderemos cómo ubicar un segmento del array en Java.

Cortar un array duplicando elementos en Java

Es una forma integrada de adquirir una porción de un array. Los índices inicial y final del array proporcionada se determinan inicialmente en este procedimiento.

Después de eso, generamos un array vacía independiente del tamaño (matriz en rodajas) (endIndex - startIndex). Copie los elementos (de startIndex) del array proporcionada a el array dividida y, por último, imprima el array dividida.

Usemos la forma descrita anteriormente en un programa Java para adquirir un array dividida del array proporcionada. Utilizaremos una variedad de tipos primitivos en esta aplicación.

import java.util.Arrays;

public class Copy {

    public static int[] getSlice(int[] arr, int stIndx, int enIndx) {

        int[] sclicedArr = new int[enIndx - stIndx];

        for (int i = 0; i < sclicedArr.length; i++) {
            sclicedArr[i] = arr[stIndx + i];
        }

        return sclicedArr;
    }

    public static void main(String args[]) {

        int[] arr = { 20, 65, 87, 19, 55, 93, 76, 98, 54, 21 };

        int stIndx = 2, enIndx = 6;

        int[] sclicedArr = getSlice(arr, stIndx, enIndx + 1);

        System.out.println("Slice of an Array: " + Arrays.toString(sclicedArr));
    }
}

Para ejecutar el código, guarde el programa como un archivo Java y ejecútelo en su IDE de Java.

Producción:

Empalme del array Java - Salida 1

Cortar un array usando el método copyOfRange() en Java

La clase Java Array contiene el método copyOfRange(). Replica el rango indicado del array en un array recién formada (matriz de segmentos) y devuelve el array recién producida con el rango especificado del array original.

Cortar un array requiere un tiempo O(n) y un espacio O(n) para almacenar los elementos, donde n es el número de elementos en el array resultante.

Sintaxis:

public static int[] copyOfRange(int[] original, int from, int to)

Los siguientes 3 parámetros son analizados por el método:

  • original: Es un array con un slice que hay que encontrar.
  • from: Es el índice de la primera página. Debe estar en el rango de 0 a la longitud del array.
  • to: Es el último índice.

Se lanzan las siguientes excepciones:

Si el índice de inicio es menor que 0 o mayor que la longitud del array original, se lanzará una ArrayIndexOutOfBoundsException. Si el índice inicial es más significativo que el índice final, se lanzará una IllegalArgumentException.

Si el array especificada es nula, se lanzará una NullPointerException.

import java.util.Arrays;

public class Copy1 {

    public static int[] slice(int[] arr, int stIndx, int enIndx) {

        int[] sclicedArr = Arrays.copyOfRange(arr, stIndx, enIndx);

        return sclicedArr;
    }

    public static void main(String args[]) {

        int[] arr = { 20, 65, 87, 19, 55, 93, 76, 98, 54, 21 };
        int stIndx = 3, enIndx = 8;

        int[] sliceArray = slice(arr, stIndx, enIndx + 1);

        System.out.println("Slice of Array: " + Arrays.toString(sliceArray));
    }
}

Para ejecutar el código, guarde el programa como un archivo Java y ejecútelo en su IDE de Java.

Producción:

Empalme del array Java - Salida 2

Cortar un array usando el flujo de Java 8

Podemos usar Java 8 Stream para descubrir la porción de un array siguiendo las instrucciones a continuación.

  • Encuentre primero las arrays de índice inicial y final.
  • Usando la función range(), convierta los elementos (los que están dentro del rango) en Primitive Stream.
  • Utilice la función map() para mapear los elementos provistos de un array.
  • Convierta el array mapeada en un array utilizando la función toArray().
  • Imprime el array cortada.
import java.util.Arrays;
import java.util.stream.IntStream;

public class NewClice {

    public static int[] findSlice(int[] arr, int stIndx, int enIndx) {

        int[] slice_arr = IntStream.range(stIndx, enIndx).map(i -> arr[i]).toArray();

        return slice_arr;
    }

    public static void main(String args[]) {

        int[] arr = { 20, 65, 87, 19, 55, 93, 76, 98, 54, 21, 657 };
        int stIndx = 2, enIndx = 8;

        int[] slice_arr = findSlice(arr, stIndx, enIndx + 1);

        System.out.println("Slice of array for the specific range is: " + Arrays.toString(slice_arr));
    }
}

Para ejecutar el código, guarde el programa como un archivo Java y ejecútelo en su IDE de Java.

Empalme del array Java - Salida 3

Artículo relacionado - Java Array

  • Cómo concatenar dos arrays en Java
  • Cómo convertir un array de bytes en una cadena hexadecimal en Java
  • Eliminar duplicados del array en Java
  • Comparar arrays en Java