Maison > Java > javaDidacticiel > Quels sont les moyens d'inverser un tableau en Java ?

Quels sont les moyens d'inverser un tableau en Java ?

WBOY
Libérer: 2023-05-23 21:58:34
avant
1050 Les gens l'ont consulté

1. Question

Entrée : 1, 2, 3, 4, 5 Sortie : 5, 4, 3, 2, 1

Entrée : 10, 20, 30, 40 Sortie : 40, 30, 20, 10

2. Méthode

Méthode 1 : Utilisez un tableau temporaire

  1. pour saisir la taille du tableau et les éléments du tableau.

  2. Considérons une fonction reverse qui accepte des paramètres - un tableau (disons arr) et la taille du tableau (disons n)

  3. À l'intérieur de la fonction, un nouveau tableau (avec la taille du premier tableau, arr ) est initialisé.

  4. Array arr[] commence à itérer à partir du premier élément, et chaque élément du tableau arr[] est placé dans un nouveau tableau par l'arrière, c'est-à-dire que le nouveau tableau commence à itérer à partir du dernier élément.

  5. De cette façon, tous les éléments du tableau arr[] sont placés dans le nouveau tableau dans l'ordre inverse.

public class reverseArray {
    // function that reverses array and stores it 
    // in another array
    static void reverse(int a[], int n)
    {
        int[] b = new int[n];
        int j = n;
        for (int i = 0; i < n; i++) {
            b[j - 1] = a[i];
            j = j - 1;
        }
        // printing the reversed array
        System.out.println("Reversed array is: \n");
        for (int k = 0; k < n; k++) {
            System.out.println(b[k]);
        }
    }
    public static void main(String[] args)
    {
        int [] arr = {10, 20, 30, 40, 50};
        reverse(arr, arr.length);
    }
}
Copier après la connexion

Le résultat est le suivant :

Reversed array is: 
50
40
30
20
10
Copier après la connexion
Copier après la connexion

Méthode 2 : Utilisez swap

pour échanger les éléments du tableau. Le premier élément est échangé avec le dernier élément. Le deuxième élément est remplacé par le dernier élément, et ainsi de suite. Par exemple, supposons que vous ayez un tableau avec des éléments [1, 2, 3, ..., n-2, n-1, n]. Échangez 1 et n, 2 et n-1, 3 et n-2, etc. un par un.

public class Test {
    public static void main(String[] args) {
        int [] arr = {10, 20, 30, 40, 50};
        reverse(arr,arr.length);
    }
    static void reverse(int[] a,int n) {
        int i, k, t;
        for (i = 0; i < n / 2; i++) {
            t = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = t;
        }
        System.out.println("Reversed array is: \n");
        for (k = 0; k < n; k++) {
            System.out.println(a[k]);
        }
    }
}
Copier après la connexion

Le résultat est le suivant :

Reversed array is: 
50
40
30
20
10
Copier après la connexion
Copier après la connexion

Méthode 3 : Utiliser la méthode Collections.reverse()

La méthode java.util.Collections.reverse(List list) inverse une liste donnée.. Inversez un tableau en le convertissant en liste, puis en appelant Collections.reverse(list).

public class Test {
    public static void main(String[] args) {
        Integer [] arr = {10, 20, 30, 40, 50};
        reverse(arr);
    }
    static void reverse(Integer[] a) {
        Collections.reverse(Arrays.asList(a));
        System.out.println(Arrays.asList(a));
    }
}
Copier après la connexion

Les résultats sont les suivants :

[50, 40, 30, 20, 10]
Copier après la connexion

Méthode 4 : utilisez la méthode StringBuilder.append()

Si vous utilisez un tableau String, nous pouvons utiliser StringBuilder et ajouter une boucle for à chaque élément du tableau, en décrémentant à partir de la longueur du tableau, convertissez le StringBuilder en chaîne, puis divisez-le en un tableau.

public class Test {
    public static void main(String[] args) {
        String[] arr = {"Hello", "World"};
        StringBuilder reversed = new StringBuilder();
        for (int i = arr.length-1; i >= 0; i--) {
            reversed.append(arr[i]).append(" ");
        };
        String[] reversedArray = reversed.toString().split(" ");
        System.out.println(Arrays.toString(reversedArray));
    }
}
Copier après la connexion

Les résultats sont les suivants :

[World, Hello]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal