Bon, je débute en Java et je dois faire un projet info/chimie dessus mais je suis bien motivé. Le problème, c'est que je me casse la tête sur un problème qui doit pourtant être courant mais j'ai fouillé sur le net, faire un tableau dynamique, et je n'ai pas trouvé de réponse précise, tout du moins avec un exemple montrant clairement comment ça marche. J'ai compris qu'en imbriquant deux ArrayList je pouvais y arriver et je vois bien la logique. J'ai donc fait ce code là :
Code :
- import java.io.* ;
- import java.util.* ; // pour StringTokenizer
- public class Molecule {
- public static void main (String args[]) throws IOException {
- String nomfich ;
- ArrayList<String> ligne = new ArrayList<String>();
- ArrayList<ArrayList> ligne = new ArrayList<ArrayList>();
- int nb = 0;
- int k = 0;
-
- // Ouverture du fichier à lister
- System.out.print ("Donnez le nom du fichier a lister : " ) ;
- nomfich = Clavier.lireString() ;
- BufferedReader entree = new BufferedReader (new FileReader (nomfich)) ;
- /* On lit chaque ligne et on ajoute chaque mot dans le vecteur mot
- et chaque ligne formée dans le vecteur ligne */
- while(true) {
- String ligneLue = entree.readLine() ;
- if (ligneLue == null) break ;
- boolean resultat = ligneLue.startsWith("ATOM" );
- if (resultat == true) {
- StringTokenizer tok = new StringTokenizer (ligneLue, " " ) ;
- nb = tok.countTokens() ;
- for (int i=0 ; i<nb-2 ; i++) {
- mot.add(tok.nextToken());
- }
- ligne.add(mot);
- System.out.println("Valeur de la ligne " + k + " : " + ligne.get(k));
- k++;
- }
- }
- System.out.println("Récapitulatif des valeurs :" );
- for (int i=0 ; i<nb-2 ; i++) {
- System.out.println(mot.get(i));
- }
- System.out.println("Valeur d'une ligne : " + ligne.get(1));
- entree.close () ;
- }
- }
|
Ca donne pour résultat que je pour chaque élément de ligne, je conserve les élément précédents (l'élément 2 contient l'élément 1 et l'élément 0 et ainsi de suite). Je crois donc que si je pouvais créer des nouveaux arraylist (du type ligne0, ligne1, etc), ça pourrait fonctionner mais je ne suis pas sûr que ça soit très propre et je ne sais pas comment faire pour utiliser des variables dans un nouveau nom de variable.
Merci par avance pour votre aide