salut je cherche une méthode qui inverse une Arrayliste s=[1,2,3,4,5] et voir s=[4,5,3,2,1]
merci de bien vouloir m'aider
Version imprimable
salut je cherche une méthode qui inverse une Arrayliste s=[1,2,3,4,5] et voir s=[4,5,3,2,1]
merci de bien vouloir m'aider
Salut,Citation:
Envoyé par ulysse031
il suffit de remplir une liste avec des entiers puis d'inserer les elements de cette liste dans une autre en partant de la fin.
C'est ce que fait la méthode reverse qui prend en parametre une liste puis renvoi cette liste inversée
A l'execution ça donne :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import java.util.*; public class Test{ static List<Integer> reverse(List<Integer> liste) { List<Integer> result = new ArrayList<Integer>(); for(int i=liste.size()-1; i>=0; i--) result.add(liste.get(i)); return result; } public static void main(String[] args) { List<Integer> liste = new ArrayList<Integer>(); for(int i=1; i<=5; i++) liste.add(i); List<Integer>result = reverse(liste); System.out.println(result); } }
Code:
1
2 java Test [5, 4, 3, 2, 1]
Ou plus simple, utiliser la méthode reverse de la classe Collections
Donc sur le même exemple, ça donne :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 import java.util.*; public class Test{ public static void main(String[] args) { List<Integer> liste = new ArrayList<Integer>(); for(int i=1; i<=5; i++) liste.add(i); Collections.reverse(liste); System.out.println(result); } }
je sais pourquoi tu veux l'inverser, mais a mon avis le plus rapide serait quand meme de la lire a l'envers
Code:
1
2
3
4 for (int i = list.size() ; 0 < i ; i--){ ?? = list.get(i); }
for(int i=list.size()-1;i>=0;i--)Citation:
Envoyé par trax44
merci
L'interface List te permet de recuperer des ListIterator qui peuvent permettre de parcourir la liste dans les deux sens. Il t'es egalement possible de recuperer un interateur sur une position donnee (au hasard dans ton cas, la fin de la liste). Cela peut te permettre d'eviter de te tromper sur les indexes (mais on peut avoir parfois besoin de manipuler des indices bien sur).
Alternativement il t'est possible d'utiliser le pattern decorateur pour creer une pseudo classe de liste qui vient decorer la premiere et te permet ainsi de la parcourir en sens inverse.