Gamme de tableaux en Java

Lovey Arora 12 octobre 2023
  1. Utiliser un autre tableau pour obtenir une plage d’éléments d’un tableau en Java
  2. Utilisez la méthode copyOfRange() pour obtenir une plage d’éléments d’un tableau en Java
  3. Utilisez l’objet stream pour obtenir une plage d’éléments d’un tableau en Java
Gamme de tableaux en Java

Le découpage de tableau est effectué pour obtenir une plage d’éléments du tableau existant. C’est comme extraire un sous-tableau d’un tableau donné.

Ce didacticiel montre comment obtenir une plage d’éléments à partir d’un tableau existant.

Utiliser un autre tableau pour obtenir une plage d’éléments d’un tableau en Java

Nous allons copier les éléments requis dans un nouveau tableau dans cette méthode. Tout d’abord, nous devons trouver l’index de début et de fin du tableau en fonction de la plage donnée. Ensuite, nous devons créer un tableau vide de taille (endIndex - startIndex). Enfin, nous copions les éléments du tableau donné dans le tableau tranché et l’imprimons.

Voir le code ci-dessous.

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

Production:

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

Il est conseillé d’utiliser cette méthode lorsqu’il s’agit uniquement d’un tableau de petites tailles. L’itération sur un tableau et la copie dans un autre tableau nécessitent beaucoup de mémoire et de temps.

Utilisez la méthode copyOfRange() pour obtenir une plage d’éléments d’un tableau en Java

Cette méthode est définie dans la classe java.util.Arrays. Cette méthode copie la plage spécifique d’éléments du tableau d’origine donné dans un nouveau tableau, puis renvoie ce tableau.

Par exemple,

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

Production:

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

Utilisez l’objet stream pour obtenir une plage d’éléments d’un tableau en Java

Nous commençons par trouver le startIndex et endIndex de la plage dans cette méthode. Ensuite, nous devons convertir l’élément dans la plage requise en Primitive Stream en utilisant la méthode range(). Ensuite, la méthode map() est utilisée pour mapper les éléments requis pour la plage du tableau d’origine. Enfin, la méthode toArray() convertit le tableau mappé en un tableau, et nous l’imprimons.

Voir le code ci-dessous.

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

Production:

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

Article connexe - Java Array