Gama de array em Java

Lovey Arora 12 outubro 2023
  1. Use outra matriz para obter uma gama de elementos de um array em Java
  2. Use o método copyOfRange() para obter um intervalo de elementos de um array em Java
  3. Use o objeto stream para obter uma gama de elementos de um array em Java
Gama de array em Java

O fatiamento do array é feito para obter uma variedade de elementos do array existente. É como extrair um submatriz de um determinado array.

Este tutorial demonstra como obter uma variedade de elementos de um array existente.

Use outra matriz para obter uma gama de elementos de um array em Java

Copiaremos os elementos necessários para uma nova matriz neste método. Primeiro, temos que encontrar o índice inicial e final do array com base no intervalo fornecido. Então, temos que criar um array vazio de tamanho (endIndex - startIndex). Por fim, copiamos os elementos do array fornecido para o array fatiado e o imprimimos.

Veja o código fornecido abaixo.

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));
  }
}

Produção:

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

É aconselhável usar esse método ao lidar apenas com um array de tamanhos pequenos. A iteração em um array e a cópia para outra requerem muita memória e tempo.

Use o método copyOfRange() para obter um intervalo de elementos de um array em Java

Este método é definido na classe java.util.Arrays. Este método copia o intervalo específico de elementos do array original fornecido para um novo array e retorna este array.

Por exemplo,

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));
  }
}

Produção:

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

Use o objeto stream para obter uma gama de elementos de um array em Java

Começamos encontrando o startIndex e endIndex do intervalo neste método. Então, temos que converter o elemento no intervalo requerido em Primitive Stream usando o método range(). Em seguida, o método map() é usado para mapear os elementos necessários para o intervalo do array original. Finalmente, o método toArray() converte o array mapeado em um array e o imprimimos.

Veja o código fornecido abaixo.

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));
  }
}

Produção:

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

Artigo relacionado - Java Array