Maison  >  Article  >  Java  >  Quels sont les moyens d’inverser un tableau en Java ?

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

WBOY
WBOYavant
2023-05-23 21:58:34977parcourir

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

Le résultat est le suivant :

Reversed array is: 
50
40
30
20
10

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

Le résultat est le suivant :

Reversed array is: 
50
40
30
20
10

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

Les résultats sont les suivants :

[50, 40, 30, 20, 10]

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

Les résultats sont les suivants :

[World, Hello]

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer