Convertir ArrayList en tableau Int en Java

Joel Swapnil Singh 12 octobre 2023
  1. Besoin de convertir une liste de tableaux en un tableau Int
  2. Façons de convertir une liste de tableaux en un tableau Int
Convertir ArrayList en tableau Int en Java

Nous pouvons stocker à la fois des types de données primitifs (types de données avec une taille définie et inclure des données de types similaires tels que byte, char, short, int, etc.) et des objets de classe dans un tableau.

Alors que nous ne pouvons stocker que des objets de classe dans une ArrayList. De plus, une ArrayList a une longueur dynamique qui peut augmenter ou diminuer en fonction du nombre d’éléments.

Dans cet article, nous discuterons de différentes manières de convertir une liste de tableaux en un tableau int en Java.

Besoin de convertir une liste de tableaux en un tableau Int

Nous pouvons effectuer toutes les opérations effectuées à l’aide d’un tableau à l’aide d’un ArrayList.

Mais une ArrayList est relativement lente dans l’exécution de différentes opérations. C’est parce qu’une ArrayList a une collection d’actions comme get(), put(), resize(), et bien d’autres, qui affectent toutes le temps CPU et l’utilisation de la mémoire.

Si vous devez effectuer certaines actions uniquement sur des données de taille fixe, vous devez toujours utiliser Arrays au lieu de ArrayList.

Façons de convertir une liste de tableaux en un tableau Int

Supposons qu’on nous donne une ArrayList d’entiers. Nous devons convertir ArrayList en int Array. Nous pouvons le faire en utilisant une boucle for, la méthode Object[] toArray(), la méthode T[] toArray() et la méthode mapToInt().

Examinons chacune des approches une par une.

Conversion d’Arraylist en Int Array à l’aide d’une boucle for

Nous pouvons convertir manuellement ArrayList en un tableau int à l’aide d’une boucle for. Si on nous donne une ArrayList, nous allons d’abord déclarer un tableau int de la même taille que la ArrayList.

Nous pouvons utiliser la fonction size() pour calculer la taille de ArrayList. Nous pouvons maintenant copier les éléments de données de ArrayList dans le tableau int.

Pour cela, nous allons utiliser la méthode get() et la boucle for pour parcourir les éléments ArrayList. Nous avons implémenté cette approche ci-dessous dans la fonction solve().

Jetons un coup d’œil au code ci-dessous pour comprendre comment cela fonctionne.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    int[] arr = new int[nums.size()];
    for (int i = 0; i < nums.size(); i++) {
      arr[i] = nums.get(i);
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Production :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Conversion de Arraylist en Int Array à l’aide de la fonction Object[] toArray()

Nous pouvons également utiliser la fonction Object[] toArray() pour convertir une ArrayList en tableau int en Java.

Si on nous donne une ArrayList, nous allons d’abord construire un objet Object et utiliser la fonction toArray(). Gardez à l’esprit que la méthode toArray() renvoie un tableau de type Object.

Pour éliminer cela, nous devons le transtyper dans le type de données souhaité (dans ce cas, int) pour éviter les erreurs de compilation. Nous avons implémenté cette approche ci-dessous dans la fonction solve().

Jetons un coup d’œil au code ci-dessous pour comprendre comment cela fonctionne.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    Object[] obj_arr = nums.toArray();
    int[] arr = new int[nums.size()];
    for (int i = 0; i < obj_arr.length; i++) {
      arr[i] = (int) obj_arr[i];
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Production :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Conversion d’Arraylist en Int Array à l’aide de la fonction T[] toArray

Nous pouvons également utiliser la fonction T[] toArray() pour convertir une ArrayList en tableau int en Java. Si on nous donne une ArrayList, nous allons d’abord construire un objet Integer et utiliser la fonction toArray().

Dans cette méthode, si le tableau n’est pas assez grand, alors un nouveau tableau du même type est alloué à cet effet. Nous avons implémenté cette approche ci-dessous dans la fonction solve().

Jetons un coup d’œil au code ci-dessous pour comprendre comment cela fonctionne.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    Integer[] int_arr = new Integer[nums.size()];
    int_arr = nums.toArray(int_arr);
    int[] arr = new int[nums.size()];
    for (int i = 0; i < int_arr.length; i++) {
      arr[i] = int_arr[i];
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Production :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Conversion de Arraylist en Int Array à l’aide de la fonction mapToInt()

Nous pouvons également convertir une ArrayList en un tableau int en Java en combinant la méthode streams() de la liste avec la fonction mapToInt(), qui convertit les données de la ArrayList en valeurs entières primitives. Il s’agit d’une méthode nouvelle et fascinante pour convertir une ArrayList en un tableau d’entiers accessible à partir de Java 8.

Si une ArrayList est donnée, nous appellerons d’abord la fonction stream() sur la ArrayList fournie. Après cela, nous invoquerons la méthode mapToInt(), qui renvoie un flux d’entiers composé de résultats.

Et après cela, nous appellerons la méthode toArray(), qui convertira les résultats extraits en un tableau int. Nous avons implémenté cette approche ci-dessous dans la fonction solve().

Jetons un coup d’œil au code ci-dessous pour comprendre comment cela fonctionne.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    int[] arr = nums.stream().mapToInt(i -> i).toArray();
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

Production :

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Article connexe - Java Array

Article connexe - Java ArrayList