logo

Ajouter des éléments au tableau en Java

Un tableau est une collection d’éléments de types similaires stockés à des emplacements contigus dans la mémoire. Le principal avantage d’un tableau est que nous pouvons accéder de manière aléatoire aux éléments du tableau, alors que les éléments d’une liste chaînée ne sont pas accessibles de manière aléatoire.

Dans Java , Tableaux sont des types de données mutables, c'est-à-dire que la taille du tableau est fixe et nous ne pouvons pas ajouter directement un nouvel élément dans le tableau. Cependant, il existe différentes manières d’ajouter des éléments au tableau. Supposons que nous ayons un tableau arr et que nous devions y ajouter des éléments. Nous pouvons utiliser les méthodes suivantes pour ajouter des éléments à l'arr.

  1. En créant un tableau de plus grande taille que arr.
  2. En utilisant ArrayList
  3. En déplaçant l'élément pour ajuster la taille de l'arr.

Jetons un coup d'œil à l'intérieur des méthodes que nous avons décrites.

Création d'un tableau de plus grande taille

Pour ajouter des éléments dans le tableau Java, nous pouvons créer un autre tableau de plus grande taille, copier tous les éléments de notre tableau vers un autre tableau et placer la nouvelle valeur à la fin du tableau nouvellement créé. Cependant, ce n’est pas un moyen efficace d’ajouter un élément au tableau. Dans l'exemple ci-dessous, un élément 7 est ajouté au tableau arr à l'aide d'un tableau newArr nouvellement créé. Considérez l'exemple suivant.

 import java.util.Arrays; public class ArrayExample { public static void main(String[] args) { // TODO Auto-generated method stub int arr[] = {1,2,3,4,5,6}; int n = arr.length; int newArr[] = new int[n+1]; int value = 7; System.out.println(Arrays.toString(arr)); for(int i = 0; i<n; i++) { newarr[i]="arr[i];" } newarr[n]="value;" system.out.println(arrays.tostring(newarr)); < pre> <h3>Using ArrayList</h3> <p>We can use <a href="/java-arraylist">ArrayList</a> as the intermediate structure and add the elements into the ArrayList using the add () method. ArrayList is a data structure that allows us to dynamically add elements. However, we can convert the ArrayList to the array by using the toArray() method. Hence this process involves the following steps.</p> <ol class="points"> <li>Convert Array into ArrayList using asList() method.</li> <li>Add elements into the array list using the add() method.</li> <li>Convert the ArrayList again to the array using the toArray() method.</li> </ol> <p>Consider the following example.</p> <pre> import java.util.ArrayList; import java.util.Arrays; public class JavaAddElementUsingList { public static void main(String[] args) { // TODO Auto-generated method stub Integer arr[] = {1,2,3,4,5,6}; System.out.println(&apos;Array:&apos;+Arrays.toString(arr)); ArrayList arrayList = new ArrayList(Arrays.asList(arr)); arrayList.add(7); arr = arrayList.toArray(arr); System.out.println(&apos;Array after adding element: &apos;+Arrays.toString(arr)); } } </pre> <p> <strong>Output:</strong> </p> <pre> Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] </pre> <h3>Shifting elements to adjust the size of the array</h3> <p>In this method, we will add the elements to the specified index in the array. Likewise, the above two processes will use a new destination array with a larger size than the original array. However, it will be tricky to shift the destination array elements after copying all elements from the original array to destination array.</p> <p>In this method, we will,</p> <ol class="points"> <li>Create a new destination array with a larger size than the original array.</li> <li>Copy all the elements from the original array to the new destination array</li> <li>Shift the elements after the given index to the right until it reaches the end of the array.</li> <li>Insert the new element at the given index.</li> </ol> <p>Consider the following example in which we will add a specific value at the given index 3 in the original array using a destination array.</p> <pre> import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println('array after adding value: '+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;></pre></n;>

Sortir:

 Array:[1, 2, 3, 4, 5, 6] Array after adding element: [1, 2, 3, 4, 5, 6, 7] 

Déplacement des éléments pour ajuster la taille du tableau

Dans cette méthode, nous ajouterons les éléments à l'index spécifié dans le tableau. De même, les deux processus ci-dessus utiliseront un nouveau tableau de destination d'une taille plus grande que le tableau d'origine. Cependant, il sera difficile de déplacer les éléments du tableau de destination après avoir copié tous les éléments du tableau d'origine vers le tableau de destination.

Dans cette méthode, nous allons,

  1. Créez un nouveau tableau de destination avec une taille plus grande que le tableau d'origine.
  2. Copiez tous les éléments du tableau d'origine vers le nouveau tableau de destination
  3. Déplacez les éléments après l'index donné vers la droite jusqu'à ce qu'il atteigne la fin du tableau.
  4. Insérez le nouvel élément à l'index donné.

Considérons l'exemple suivant dans lequel nous ajouterons une valeur spécifique à l'index 3 donné dans le tableau d'origine à l'aide d'un tableau de destination.

 import java.util.Arrays; public class JavaAddElementArraySpecified { public static void main(String[] args) { Integer arr[] = {1,2,3,4,5,6}; int n = arr.length; int index = 3; System.out.println(&apos;Original Array: &apos;+Arrays.toString(arr)); Integer newArr[] = new Integer[n+1]; int j = 0; for(int i = 0; i<newarr.length; i++) { if(i="=index)" newarr[i]="7;" }else j++; } newarr[index]="7;" system.out.println(\'array after adding value: \'+arrays.tostring(newarr)); < pre> <p> <strong>Output:</strong> </p> <pre> Original Array: [1, 2, 3, 4, 5, 6] Array after adding value: [1, 2, 3, 7, 4, 5, 6] </pre> <hr></newarr.length;>