Rango de array en Java

Lovey Arora 12 octubre 2023
  1. Utilice otra matriz para obtener un rango de elementos de un array en Java
  2. Utilice el método copyOfRange() para obtener un rango de elementos de un array en Java
  3. Utilice el objeto stream para obtener un rango de elementos de un array en Java
Rango de array en Java

El corte del array se realiza para obtener un rango de elementos del array existente. Es como extraer una submatriz de un array dada.

Este tutorial demuestra cómo obtener un rango de elementos de un array existente.

Utilice otra matriz para obtener un rango de elementos de un array en Java

Copiaremos los elementos requeridos a una nueva matriz en este método. Primero, tenemos que encontrar el índice de inicio y finalización del array en función del rango dado. Luego, tenemos que crear un array vacía de tamaño (endIndex - startIndex). Finalmente, copiamos los elementos del array dada a el array cortada y la imprimimos.

Consulte el código que se proporciona a continuación.

import java.util.Arrays;

public class Main {
  public static int[] getSlice(int[] array, int startIndex, int endIndex) {
    int[] slicedArray = new int[endIndex - startIndex];
    for (int i = 0; i < slicedArray.length; i++) {
      slicedArray[i] = array[startIndex + i];
    }
    return slicedArray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] slicedArray = getSlice(array, startIndex, endIndex + 1);
    System.out.println("Slice of Array: " + Arrays.toString(slicedArray));
  }
}

Producción :

Slice of Array: [45, 33, 84, 4, 67, 73]

Es recomendable utilizar este método cuando solo se trata de una variedad de tamaños pequeños. Iterar sobre un array y copiar a otra matriz requiere mucha memoria y tiempo.

Utilice el método copyOfRange() para obtener un rango de elementos de un array en Java

Este método se define en la clase java.util.Arrays. Este método copia el rango específico de elementos del array original dada a una nueva matriz y luego devuelve esta matriz.

Por ejemplo,

import java.util.Arrays;
public class Main {
  public static int[] slice(int[] array, int startIndex, int endIndex) {
    int[] slicedArray = Arrays.copyOfRange(array, startIndex, endIndex);
    return slicedArray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] sliceArray = slice(array, startIndex, endIndex + 1);
    System.out.println("Slice of Array: " + Arrays.toString(sliceArray));
  }
}

Producción :

Slice of Array: [45, 33, 84, 4, 67, 73]

Utilice el objeto stream para obtener un rango de elementos de un array en Java

Comenzamos encontrando el startIndex y el endIndex del rango en este método. Luego, tenemos que convertir el elemento en el rango requerido en Primitive Stream usando el método range(). A continuación, se utiliza el método map() para mapear los elementos requeridos para el rango del array original. Finalmente, el método toArray() convierte el array mapeada en un array y la imprimimos.

Consulte el código que se proporciona a continuación.

import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
  public static int[] findSlice(int[] array, int startIndex, int endIndex) {
    int[] slcarray = IntStream.range(startIndex, endIndex).map(i -> array[i]).toArray();
    return slcarray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] slcarray = findSlice(array, startIndex, endIndex + 1);
    System.out.println("Slice of array for the specified range is: " + Arrays.toString(slcarray));
  }
}

Producción :

Slice of Array: [45, 33, 84, 4, 67, 73]

Artículo relacionado - Java Array