IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

ArrayList et Affichage


Sujet :

avec Java

  1. #1
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut ArrayList et Affichage
    Bonsoir,

    j'ai un ArrayList qui contient les noms de 3 cours et un autre ArrayList qui va contenir les notes en utilisant un scanner.
    Mon code a l'air de fonctionner mais j'ai un soucis au niveau du print : j'aimerais afficher la liste des cours et les notes mais je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import java.util.ArrayList;
    import java.util.Scanner;
     
     
    class Main {
      public static void main(String[] args) {
            Scanner INPUT = new Scanner(System.in);
            ArrayList<Integer> listNotes = new ArrayList();
            ArrayList<String> listCourses = new ArrayList();
     
            int notes;
            String[] courses = {"Science", "History", "English"};
     
            for(int i=0; i<5;i++){
                //System.out.print((i+1) + " note(s) : ");
                System.out.print((courses[i]) + " Note : ");
                notes = INPUT.nextInt();
                listNotes.add(notes);
            }
     
            System.out.print("Notes : " + listNotes  );
      }
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,


    1. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      String[] courses = {"Science", "History", "English"};
       
      for(int i=0; i<5;i++){
            System.out.print((courses[i]) + " Note : ");
      Tu as trois libellés dans le tableau courses et tu fais une boucle de 0 à 5 exclus, donc forcément ça plante avec courses[4] parce que ça n'existe pas, c'est en dehors des limites du tableau. C'est toujours mieux de faire ce genre de boucle par rapport à la taille du tableau (ou de la liste), ça évite de dépasser les bornes.


    2. Ensuite, si c'est ta liste listCourses qui doit contenir les libellés, pourquoi les mettre dans un tableau ?
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ArrayList<String> listCourses = Arrays.asList("Science", "History", "English");
      Pour faire la boucle :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      for(int i=0; i<listCourses;i++){
            System.out.print((courses.get(i) + " Note : "); 
       
            /**...**/
       
      }

  3. #3
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Effectivement j'ai fais une erreur dans ma boucle. Le but de mon exercice est d'arriver au même résultat qu'en Python à travers ce code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cours = ["Math", "Geo", "Os"]
    notes = []
    somme = 0
     
    for i in range(3):
      notes.append( int( input( "Point pour " + cours[i] + " : ") ) )
      somme = somme + notes[i]
     
    moyenne = somme / 3
    print(" Résumé")
     
    for i in range(3):
      print( cours[i] + "\t" + str(notes[i]) )
    print("moyenne = {:.2f}".format( moyenne))
    Mais je n'y arrive vraiment pas avec les ArrayList ; pourquoi utilises-tu un Arrays.asList ? Et pas un ArrayList simple ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Tamzoro Voir le message

    Le but de mon exercice est d'arriver au même résultat qu'en Python à travers ce code.
    Comme Java ne permet pas les tableaux de taille variable,

    1. soit tu gères ça avec un ArrayList (un List serait suffisante) à place du tableau de taille variable. Et donc, c'est presque comme pour python, sauf qu'au lieu d'un append sur un tableau, tu fais un add sur un List.
    2. soit tu gères ça avace un tableau que tu prédimensionnes, d'autant que tu connais la taille du tableau.

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
       
      Scanner input = new Scanner(System.in);
      String[] cours = {"Math", "Geo", "Os"};
      int[] notes = new int[cours.length]; 
      double somme = 0;
       
      for(int i=0; i<cours.length; i++) {
        System.out.println("Point pour " + cours[i] + " : ");
        notes[i] = input.nextInt();
        somme += notes[i];
      }
       
      double moyenne = somme / cours.length;
      System.out.println(" Résumé");
       
      for(int i=0; i<cours.length; i++) {
        System.out.println( cours[i] + "\t" + notes[i] );
      }
       
      System.out.format("moyenne %.2f%n",moyenne);



    Citation Envoyé par Tamzoro Voir le message
    pourquoi utilises-tu un Arrays.asList ? Et pas un ArrayList simple ?
    Arrays.asList() permet de créer facilement une List avec une liste finie statique de valeurs. Si tu veux gérer les cours comme une liste, tu t'en fous que ça soit une ArrayList ou autre, ce qui importe c'est que ça soit une List. Du coup, c'est bien Arrays.asList() qui est le plus simple.


    1. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      List<String> cours = Arrays.asList("Math", "Geo", "Os");

    2. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      List<String> cours = new ArrayList<>();
      cours.add("Math");
      cours.add("Geo");
      cours.add("Os";

    3. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
       
      String[] coursLabels = {"Math","Geo","Os"};
      List<String> cours = new ArrayList<>();
      for(String coursLabel : coursLabels) {
         cours.add(coursLabel);
      }


    On peut l'écrire de centaines de manières différentes, mais c'est quand même bien la première ici la plus simple...

  5. #5
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Septembre 2009
    Messages
    458
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Septembre 2009
    Messages : 458
    Points : 237
    Points
    237
    Par défaut
    Bonsoir joel.drigo,

    Je te remercie pour le temps que tu as consacré pour tes explications. C'est super gentil de te part.
    J'ai encore une dernière question comment savoir si on doit utiliser une liste ou un tableau ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Peupler arrayList pour affichage
    Par lachik dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 27/12/2017, 16h51
  2. Affichage d'une ArrayList avec logic:iterate
    Par mitje dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/09/2006, 10h02
  3. [JSF]Affichage de beans depuis une ArrayList dans une JSP
    Par adrien.nicolet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 05/06/2006, 17h33
  4. [VB.Net/Datagrid-Arraylist] Comment râfraichir l'affichage?
    Par bguihal dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/02/2006, 13h26
  5. [VB.NET] [WinForms] [DataGrid][ArrayList] Affichage colonnes
    Par Misterburma dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/04/2005, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo