Java >> Tutoriel Java >  >> Java

3 méthodes pour inverser un tableau en Java

Qu'est-ce que Array Reverse en Java ?

Pour implémenter l'inversion de tableau dans la programmation Java, la taille du tableau et ensuite les éléments du tableau doivent être entrés par l'utilisateur. À l'étape suivante, les éléments du tableau sont permutés. Une variable (temp) du même type est créée pour placer le premier élément dans la variable temp, puis le dernier élément est placé dans le premier, temp est placé dans le dernier, et ainsi de suite - le processus continue jusqu'à ce que le tableau entier soit inversé.

En Java, la plupart des types de tableaux primitifs - int, long, string et double arrays - doivent être inversés pour les besoins de codes spécifiques. Apache commons lang, qui est une bibliothèque open source attribuée à la fondation logicielle Apache, fournit la classe ArrayUtils. Cette classe intéressante est utilisée en association avec la classe java.util.Arrays pour jouer avec des tableaux d'objets et de primitives en Java. L'API fournit des méthodes surchargées faciles à utiliser pour inverser différents types de tableaux en Java - qu'il s'agisse de tableaux int, log, double, float ou object.

Lisez la suite pour en savoir plus sur cette méthode et sur d'autres méthodes concernant la façon d'inverser un tableau en Java - de la bonne manière.

Comment inverser un tableau en Java avec des exemples

Il existe de nombreuses méthodes pour inverser un tableau en Java. Vous pouvez envisager d'écrire vous-même une fonction qui boucle sur le tableau et continue d'échanger tous les éléments jusqu'à ce que le tableau complet soit trié. Dans une autre méthode d'inversion de tableau en Java, un tableau peut être converti en une ArrayList, après quoi un code spécifique peut être utilisé pour inverser la ArrayList. Une autre méthode d'inversion de tableau en Java consiste à utiliser le programme Apache Commons ArrayUtils.reverse() dans le but d'inverser tout type de tableau Java. Cette méthode peut être surchargée pour la cause de l'inversion des tableaux de type short, long, int, byte, float, double ou string. Les utilisateurs peuvent souhaiter implémenter n'importe quelle méthode pour inverser un tableau en Java selon leur choix et la nature du tableau dans le calcul.

Méthode 1 :Inverser la matrice en place

Dans ce moyen simple d'inverser un tableau Java, l'algorithme est amené à boucler sur le tableau et continue à échanger les éléments jusqu'à ce que le point médian soit atteint. Comme aucun tampon supplémentaire n'est utilisé, cette méthode d'inversion d'un tableau en Java est également appelée tableau sur place.

for(int i=0; i<array.length/2; i++){

 int j= array[i];

 array[i] = array[array.length -i -1];

 array[array.length -i -1] = j;

}

La complexité temporelle de l'algorithme ci-dessus est O(n/2). En d'autres termes, c'est O(N) car l'itération à travers la boucle a lieu jusqu'à son point médian seulement. Cette méthode offre une solution idéale pour les personnes interrogées car les deux méthodes restantes sont adaptées à des fins pratiques.

Méthode 2 : Utiliser une ArrayList

Cette méthode particulière d'inversion de tableau en Java convertit le tableau donné en ArrayList, puis utilise la méthode Collections.reverse() qui reprend les éléments de la liste et inverse les éléments en temps linéaire. Les tableaux de type int, string ou autres peuvent être inversés à l'aide de cette méthode. L'exemple suivant illustre une inversion d'un tableau de type chaîne en Java :

//Simple Java Program to reverse a string array

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

public class ArrayReverse {

   public static void main(String args[])  {

     String[] arrayColor = {"Red", "Green", "Blue", "Orange","Yellow"};

     System.out.println("Array Before: " + Arrays.toString(arrayColor) );

     List<String> arrayNewColor = Arrays.asList(arrayColor);      

     Collections.reverse(arrayNewColor);

     String[] reversed = arrayNewColor.toArray(arrayColor);

     System.out.println("Array Reverse: " + Arrays.toString(reversed) );

   }

}

Sortie

Matrice avant : [Rouge, Vert, Bleu, Orange, Jaune]

Array Inverse : [Jaune, Orange, Bleu, Vert, Rouge]

Comme il ressort de la sortie fournie ci-dessus, l'ordre d'origine des éléments a été inversé dans le tableau final tel que renvoyé par la méthode toArray() de la classe List.

Méthode 3 - En utilisant ArrayUtils.reverse()

Apache commons fait référence à une collection de nombreuses bibliothèques d'utilitaires utilisées pour un développement Java efficace. Cette bibliothèque est souvent ajoutée par défaut par les codeurs à leurs projets dans le but de compléter le JDK. Apache Commons Lang propose la classe ArrayUtils qui comprend des méthodes reverse() surchargées pour l'inversion des tableaux int, float ainsi que des tableaux de type objet en Java. Cette méthode particulière inverse n'importe quel tableau donné à sa place; en d'autres termes, un nouveau tableau n'est pas créé pour les besoins de l'inversion de tableau dans le code Java.

Le code suivant décrira bien cette méthode :

import java.util.Arrays;

import org.apache.commons.lang3.ArrayUtils;

public class Byarrayutilis {

   public static void main(String args[]) {

       String[] arraycolor = {"Red", "Green", "Blue", "Orange","Yellow"};

       System.out.println("Array before: " + Arrays.toString(arraycolor));

       ArrayUtils.reverse(arraycolor);

       System.out.println("Array after: " + Arrays.toString(arraycolor));

   }

}

Sortie

Tableau avant : [Rouge, Vert, Bleu, Orange, Jaune]

Array Inverse : [Jaune, Orange, Bleu, Vert, Rouge]

La classe ArrayUtils appartient à Apache Commons Lang. Commons-lang3-3.4.jar doit être ajouté au chemin de classe de l'application pour que cette méthode ait lieu. Alternativement, dans le cas où Maven est utilisé, la dépendance suivante doit être incluse dans le fichier pom.xml.

<dependency>

       <groupId>org.apache.commons</groupId>

       <artifactId>commons-lang3</artifactId>

       <version>3.4</version>

   </dependency>

Comment imprimer l'inverse d'un tableau en Java ?

Au tout début, des valeurs doivent être fournies au tableau qui doit être inversé en Java.

int[] var = { 1, 2, 3 };

Ensuite, le compteur de boucle doit être initialisé. Ce processus d'initialisation peut avoir lieu à partir de la structure de la boucle. La boucle peut être définie comme :

for (int i = var.length - 1; i >= 0; --i){

System.out.println(var[i]);

}

La sortie est 321 qui sera imprimée sur la console.

Conclusion

Les méthodes mentionnées ci-dessus aident grandement les codeurs à inverser le tableau int &String en Java. Le tableau inversé en Java peut être implémenté de manière appropriée conformément aux trois méthodes ci-dessus. Si vous devez répondre à une question d'entretien concernant un programme Java pour inverser un tableau, utilisez l'algorithme en place. Les autres méthodes incluent l'utilisation de la classe ArrayList et de la méthode utilitaire ArrayUtils.reverse() appartenant à la bibliothèque Apache commons lang. Choisissez la méthode qui s'applique à vos besoins de programmation reverse array en java de la meilleure façon possible !


Balise Java