2017-10-02 3 views
2

J'ai essayé ce code mais je ne suis pas sûr de savoir pourquoi cela ne fonctionne pas:Comment inverser un tableau en Java?

String[] arr = {"A", "B", "C", "D", "E"};//AD 
    String[] arr2 = arr; 
    int last = arr.length-1; 
    int first = 0; 
    int size = arr.length; 
    while (first < size) { 
     arr2[first] = arr[last]; 
     last--; 
     first++; 
    } 
    System.out.print(Arrays.toString(arr2)); 

Quelqu'un peut-il aider?

+2

'Chaîne [] arr2 = arr;' ne fait pas de copie. C'est toujours le même tableau. – user2357112

+0

* "String [] arr2 = arr;" * - Quelle magie de style Harry Potter comptez-vous arriver ici? – Tom

+0

Juste faire un tout nouveau tableau de la même longueur et le remplir à rebours – TheCrzyMan

Répondre

2

Cette ligne ne fait pas ce que vous pensez: String[] arr2 = arr. Ceci pointe simplement la variable arr2 à la même référence d'objet que arr. Ainsi, les changements dans l'un apparaîtront dans l'autre, puisqu'ils sont effectivement la même chose.

Pour inverser un tableau, vous devez parcourir le tableau et copier les valeurs dans votre tableau inversé.

+0

Vous pouvez le faire en place –

+0

N'hésitez pas à ajouter votre propre réponse montrant comment inverser un tableau en place dans une nouvelle variable sans modifier l'original. –

+1

Wow, je ne savais même pas que tu pouvais faire ça avec une boucle for, tellement cool! –