Découper un tableau en Java

Shiv Yadav 12 octobre 2023
  1. Découpage de tableau en Java
  2. Découper un tableau en dupliquant des éléments en Java
  3. Découper un tableau à l’aide de la méthode copyOfRange() en Java
  4. Découper un tableau à l’aide du flux Java 8
Découper un tableau en Java

Cet article vous aidera à découper un tableau en un sous-tableau en Java.

Découpage de tableau en Java

Le découpage de tableau est une technique Java permettant d’extraire un sous-tableau d’un tableau plus étendu.

Supposons que k[] est un tableau. Il comporte 7 composantes, numérotées k[0] à k[6].

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

Maintenant, nous recherchons une tranche de l’index du tableau entre k[2] et k[5]. Le startIndex est k[2], tandis que le endIndex est k[5].

En conséquence, nous obtenons le tableau tranché ci-dessous :

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

Dans les sections suivantes, nous apprendrons comment localiser une tranche de tableau en Java.

Découper un tableau en dupliquant des éléments en Java

C’est un moyen intégré d’acquérir une tranche d’un tableau. Les index de début et de fin du tableau fourni sont initialement déterminés dans cette procédure.

Après cela, nous générons un tableau vide indépendant de la taille (tableau en tranches) (endIndex - startIndex). Copiez les éléments (de startIndex) du tableau fourni dans le tableau en tranches, et enfin, imprimez le tableau en tranches.

Utilisons la méthode décrite ci-dessus dans un programme Java pour acquérir un tableau en tranches du tableau fourni. Nous utiliserons un tableau de types primitifs dans cette application.

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

Pour exécuter le code, enregistrez le programme en tant que fichier Java et exécutez-le dans votre IDE Java.

Production:

Java Array Splice - Sortie 1

Découper un tableau à l’aide de la méthode copyOfRange() en Java

La classe Java Array contient la méthode copyOfRange(). Il réplique la plage indiquée du tableau dans un tableau nouvellement formé (tableau de tranches) et renvoie le tableau nouvellement produit avec la plage spécifiée du tableau d’origine.

Le découpage d’un tableau nécessite du temps O(n) et de l’espace O(n) pour stocker les éléments, où n est le nombre d’éléments dans le tableau résultant.

Syntaxe:

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

Les 3 paramètres suivants sont analysés par la méthode :

  • original : C’est un tableau avec une tranche qu’il faut trouver.
  • de : C’est l’index de la première page. Il doit être compris entre 0 et la longueur du tableau.
  • à : C’est le dernier index.

Les exceptions suivantes sont levées :

Si l’index de départ est inférieur à 0 ou supérieur à la longueur du tableau d’origine, une ArrayIndexOutOfBoundsException sera levée. Si l’index de début est plus significatif que l’index de fin, une IllegalArgumentException sera levée.

Si le tableau spécifié est nul, une NullPointerException sera levée.

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

Pour exécuter le code, enregistrez le programme en tant que fichier Java et exécutez-le dans votre IDE Java.

Production:

Java Array Splice - Sortie 2

Découper un tableau à l’aide du flux Java 8

Nous pouvons utiliser Java 8 Stream pour découvrir la tranche d’un tableau en suivant les instructions ci-dessous.

  • Recherchez d’abord les tableaux Index de début et de fin.
  • A l’aide de la fonction range(), convertissez les éléments (ceux qui sont dans la plage) en flux primitif.
  • Utilisez la fonction map() pour mapper les éléments fournis à partir d’un tableau.
  • Convertissez le tableau mappé en tableau à l’aide de la fonction toArray().
  • Imprimer le tableau en tranches.
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));
  }
}

Pour exécuter le code, enregistrez le programme en tant que fichier Java et exécutez-le dans votre IDE Java.

Java Array Splice - Sortie 3

Auteur: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn

Article connexe - Java Array