J'ai besoin de savoir si je stocke mes données dans une ArrayList et si je dois récupérer la valeur que j'y ai stockée.
Par exemple : si j'ai une liste de tableaux comme celle-ci
ArrayList A = new ArrayList();
A = {"Soad", "mahran"};
et que je veux récupérer chaque élément de type String, comment puis-je le faire ?
J'ai essayé de le faire avec le code suivant :
package arraylist;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList S = new ArrayList();
String A = "soad ";
S.add(A);
S.add("A");
String F = S.toString();
System.out.println(F);
String [] W = F.split(",");
for(int i=0 ; i<W.length ; i++) {
System.out.println(W[i]);
}
}
}
L'extrait suivant donne un exemple qui montre comment obtenir un élément d'une List
à un index spécifié, et aussi comment utiliser la boucle avancée for-each pour itérer à travers tous les éléments :
import java.util.*;
//...
List<String> list = new ArrayList<String>();
list.add("Hello!");
list.add("How are you?");
System.out.println(list.get(0)); // prints "Hello!"
for (String s : list) {
System.out.println(s);
} // prints "Hello!", "How are you?"
Notez ce qui suit :
List<String>
et ArrayList<String>
sont utilisés au lieu du type brut ArrayList
.list
est déclarée comme List<String>
, c'est-à-dire le type d'interface au lieu du type d'implémentation ArrayList<String>
.class ArrayList<E> implements List<E>
interface List<E>
E get(int index)
JLS 4.8 Raw Types L'utilisation de types bruts n'est autorisée qu'à titre de concession à la compatibilité du code hérité. L'utilisation de types bruts dans du code écrit après l'introduction de la généricité dans le langage de programmation Java est fortement déconseillée. Il est possible que les futures versions du langage de programmation Java interdisent l'utilisation des types bruts.
_Effective Java 2nd Edition : Point 23 : N'utilisez pas de types bruts dans le nouveau code.
Si vous utilisez des types bruts, vous perdez tous les avantages de sécurité et d'expressivité des génériques.
[...] vous devez privilégier l'utilisation d'interfaces plutôt que de classes pour faire référence aux objets. Si des types d'interface appropriés existent, alors les paramètres, les valeurs de retour, les variables et les champs doivent tous être déclarés à l'aide de types d'interface.
Variables : À l'exception des variables, toutes les constantes d'instance, de classe et de classe sont en casse mixte avec une première lettre minuscule.
Vous pouvez soit récupérer vos chaînes de caractères par index (System.out.println(S.get(0));
), soit les parcourir par itération :
for (String s : S) {
System.out.println(s);
}
Pour d'autres façons d'itérer dans une liste (et leurs implications), voir boucle for traditionnelle vs Iterator en Java.
De plus :
ArrayList<String> list = new ArrayList<String>();
[2] : http://en.wikipedia.org/wiki/Javadoc [3] : http://java.sun.com/j2se/1.5.0/docs/api/ [4] : http://java.sun.com/javase/6/docs/api/