Accès aux éléments d'un ArrayList en Java [Résolu/Fermé]

Signaler
-
 matt -
Bonjour,

J'ai un ArrayList qui contient plusieurs ArrayList. Je cherche comment accéder aux éléments de mes ArrayList "fils" afin de pouvoir les afficher et les traiter individuellement.

Merci.
Cordialement,

2 réponses

Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
708
Si tu veux éviter le génériques, rien de plus simple:
		List parentList = new ArrayList();

		List child1 = new ArrayList();
		child1.add("a1");
		child1.add("a2");
		child1.add("a3");

		List child2 = new ArrayList();
		child2.add("b1");
		child2.add("b2");

		List child3 = new ArrayList();
		child3.add("c1");

		parentList.add(child1);
		parentList.add(child2);
		parentList.add(child3);

		for (int i = 0; i < parentList.size(); i++) {
			List child = (List) parentList.get(i);
			for (int j = 0; j < child.size(); j++) {
				System.out.println(child.get(j));
			}
		}


Sinon, est-ce que tu as fixé également la compatibilité du bytecode généré (les fichiers .class), à part la compatibilité des sources? Les génériques sont acceptés à partir de Java 1.5

++
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Merci.

ça marche bien comme ça. Je peux accéder aux éléments fils sans souci.
Messages postés
3924
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
708
Salut,

Quel est le souci? Tu utilises 2 itérations imbriquées. Par exemple:
List<List<String>> parentList = new ArrayList<List<String>>();

List<String> child1 = new ArrayList<String>();
child1.add("a1");
child1.add("a2");
child1.add("a3");

List<String> child2 = new ArrayList<String>();
child2.add("b1");
child2.add("b2");

List<String> child3 = new ArrayList<String>();
child3.add("c1");

parentList.add(child1);
parentList.add(child2);
parentList.add(child3);

for (List<String> list : parentList) {
	for (String string : list) {
		System.out.println(string);
	}
}

++
Bonjour,

J'ai essayé cette solution (proche d'une déjà essayé) mais j'ai une erreur à l'execution (pas de pb à la compilation) : generics are not supported in -source 1.4

J'ai pourtant changé dans les propriétés du projet le source level en 1.6.

Je ne comprend pas d'où vient cette erreur.