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

Collection et Stream Java Discussion :

ArrayList et NoSuchElementException


Sujet :

Collection et Stream Java

  1. #21
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    Citation Envoyé par ptitdje Voir le message
    Je sais pas si je m'exprime correctement mais du coup si je ne fait pas la suprresion de la LinkedList je me retrouve tout simplement avec toute les chronique de toute les stations pour chaque itération de l'ArrayList et c'est pas vraiment ce que je souhaite ...
    BOn et bien je suis officielement le plus stupide du monde, en tout cas je remercie tout le monde de m'avoir aider !!! =D

    La solution ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maliste.add(new LinkedList<Chronique>(chroniques));
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maliste.add(chroniques)
    Erreur stupide de ma part finalement . Encore merci à tous pour les coup de main et la présentation d'un code optimiser et super jolie ( je pense au boucle for nouvelle génération ^^ )

    Je met le post en résolu. A la prochaine!!!!

  2. #22
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Très clairement, il y a un soucis avec ça :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    	public static void analyse_fichier(String nom_fichier) {
    		BufferedReader lecteurAvecBuffer = null;
    		String ligne = null;
    		try {
    			lecteurAvecBuffer = new BufferedReader(new FileReader(nom_fichier));
    		} catch (FileNotFoundException exc) {
    			System.out.println("Erreur d'ouverture");
    		}
     
    		try {
     
    			String[] chaineEclate = null;
    			ligne = lecteurAvecBuffer.readLine();
    			while ((ligne = lecteurAvecBuffer.readLine()) != null) {
    				String eclate = ligne;
    				chaineEclate = eclate.split("\t");
    				Chronique s1 = new Chronique(Integer.valueOf(chaineEclate[0]), Integer.valueOf(chaineEclate[1]), Integer.valueOf(chaineEclate[2]), Integer.valueOf(chaineEclate[3]), Float.valueOf(chaineEclate[5]), Integer.valueOf(chaineEclate[6]), Integer.valueOf(chaineEclate[7]), Integer.valueOf(chaineEclate[8]), Integer.valueOf(chaineEclate[9]), Integer.valueOf(chaineEclate[10]), Integer.valueOf(chaineEclate[11]));
    				chroniques.add(s1);
    				eclate = "";
     
    			}
     
    			maliste.add(chroniques);
     
    			Station s2 = new Station(Integer.valueOf(chaineEclate[0]), maliste.get(count_remplir_array));
    			listestations.add(s2);
    			MapView.comboL.addItem(chaineEclate[0]);
     
    			lecteurAvecBuffer.close();
    			chroniques.clear();
    			count_remplir_array++;
    		} catch (IOException e) {
    			System.err.println(e);
    		}
     
    	}
    Je t'épargne déjà la gestion des ressources (closes)...


    Dans la partie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while ((ligne = lecteurAvecBuffer.readLine()) != null) {
    				String eclate = ligne;
    				chaineEclate = eclate.split("\t");
    				Chronique s1 = new Chronique(Integer.valueOf(chaineEclate[0]), ...
    				chroniques.add(s1);
    				eclate = "";
     
    			}
     
    			maliste.add(chroniques);
    Où est créé le nouveau chroniqueS ?

    En fait, tu peux donner un exemple de fichier de données ?
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  3. #23
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Je t'invite à lire deux tuto :

    * Charger des données depuis un fichier CSV simple en 5 minutes
    http://thierry-leriche-dessirier.dev...ier-csv-5-min/

    * Les fichiers CSV avec Java
    http://thierry-leriche-dessirier.dev...csv-avec-java/
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  4. #24
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    Ce ne sont pas des fichiers .csv mais des fichiers .txt =)

    Où est créé le nouveau chroniqueS ?
    la liste de Chronique est creer au début du programme dans les données static , à chaque fin de remplissage de chroniques je l'insère dans l'ArrayList de LinkedList . C'est un peu tordu je l'avoue ^^


    Concernant le tutoriel que tu m'a conseillé , je l'avais en effet déjà lu car avant de commencer le stage je pensais avoir des fichier .cvs mais du coup impossible.

    Par contre si tu avais des informations à me donnée concernant la grandeur maximale d'une ArrayList je suis preneur . Car là j'ai essayer de rajouter un String comprenant la date et rien n'y fait , j'ai une erreur de capacité. Du coup je dois m'en tenir à séparer la date en 3 int pour eviter ce problème.

    Je suis aussi très preneur sur la gestion des ressources car le chargement des ~300mo de donnée prend environ 20 secondes sur mon PC ( soit environ 1 minute sur le PC du bureau ^^ )

  5. #25
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    csv ou txt, ce sont les mêmes techniques. C'est juste le nom qui change. Il ressemble à quoi ton fichier ?
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  6. #26
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    Citation Envoyé par thierryler Voir le message
    csv ou txt, ce sont les mêmes techniques. C'est juste le nom qui change. Il ressemble à quoi ton fichier ?
    Bonjour bonjour,

    le fichier ressemble à sà :

    id_station id_point_de_mesure id_operation_mesure id_serie_mesure date temperature Annee mois Jour Heure Minute Seconde

    1543 1573 480 621 2008-10-15 08:00:00 15.318 10 15 8 0 0

    Chaque donne est séparé par une tabulation ( j'ai juste réécrit la 1ère itération ) en réalité j'en ai environ 20000 par fichier ( en sachant que j'ai 263 fichiers )

    Ma méthode : je lis chaque fichier un par un, et je stock pour chaque fichier toute les chroniques dans une LinkedList qui est stocké par la suite dans une et une seul ArrayList.

    Donc j'ai une class Chronique et une class LireFichier qui contient mon ArrayList de LinkedList.

    Et finalement, je me rend compte que c'est pas super pratique car j'aimerai récuperer la moyenne des températures journalière, puis la moyenne mensuel de la moyenne journalière et ceci pour chaque année. Afin de faire un magnifique graphique ^_^
    Et là je sèche complètement, j'ai essayé de passer par une class Moyenne ou je construit une Moyenne( donnee ,annee, mois, jour ) mais après je n'arrive pas a établir un algo pour me faire la moyenne simplement ...

  7. #27
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si t'as des requetages à faire su ces données, je suggèrerais ceci

    1) lire ce csv
    2) insérer toutes ces données dans un table d'un base de donnée type H2 ou derby en mémoire uniquement
    3) faire tout les travaux suivant (moyennes, max, tendances, ...) en utilisant tous les avantages du SQL

  8. #28
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Il y a une raison pour laquelle tu utilises des fichiers csv et pas une vraie base de données ? Parce que sinon, le plus simple, c'est d'utiliser une base genre sql lite et pas se prendre la tete a generer des list des list (bref, réinventer la roue). En plus, tu pourras simplement generer des graphiques en changeant simplement la requete...

  9. #29
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    J'utilise ces fichiers comme çà car je souhaite que l'aplication soit portable, a moins qu'on puisse créer une base de donner à partir des csv rapidement de manière à ne pas avoir a transporter toute une base de données de fichiers qui sont différents à jour ou non selon les laboratoires.

    2) insérer toutes ces données dans un table d'un base de donnée type H2 ou derby en mémoire uniquement
    Y-aurait-il un tuto montrant comment faire sà simplement sous eclipse en java ?

  10. #30
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Citation Envoyé par ptitdje Voir le message
    J'utilise ces fichiers comme çà car je souhaite que l'aplication soit portable, a moins qu'on puisse créer une base de donner à partir des csv rapidement de manière à ne pas avoir a transporter toute une base de données de fichiers qui sont différents à jour ou non selon les laboratoires.



    Y-aurait-il un tuto montrant comment faire sà simplement sous eclipse en java ?
    Tu peux tout installer sur une clé USB :
    - une base Derby
    - une application java
    - la JVM

    perso, je vais d'un site à l'autre en fonction de mes clients
    qui n'ont pas tous java d'installé et j'enregistre mes données
    (travaux à réaliser, temps passés, etc.)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  11. #31
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 72
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Tu peux tout installer sur une clé USB :
    - une base Derby
    - une application java
    - la JVM

    perso, je vais d'un site à l'autre en fonction de mes clients
    qui n'ont pas tous java d'installé et j'enregistre mes données
    (travaux à réaliser, temps passés, etc.)
    Merci pour le conseil ^_^ . Si quelqu'un à un petit tutoriel bien fait pour faire une base Derby ou autre en interne, je suis preneur =)

  12. #32
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Pour Derby, le mieux est de l'installer d'abord sur le disque dur, faire le développement
    et ensuite faire une petite adaptation au code pour le faire fonctionner sur une clé USB.

    As-tu des notions de SQL et as-tu déjà utilisé un sgbd depuis java ?

    perso j'utilise Netbeans. Pour Eclipse, j'ai vu ça : http://blog.paumard.org/tutoriaux/derby-eclipse/
    pour installer Derby et démarrer.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  13. #33
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

Discussions similaires

  1. [SAX] NoSuchElementException sur parser XML
    Par iceman dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 17/05/2004, 14h42
  2. [info]arrayList ou Vector
    Par schousso dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/05/2004, 15h47
  3. [info]ArrayList
    Par schousso dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 06/05/2004, 11h44
  4. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41
  5. [ STRUTS ][ JSP ][ ArrayList] un lien pour trier
    Par LoulouFifi dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/02/2004, 17h24

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