Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2854 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Entrer des données dans un tableau initialement vide

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Entrer des données dans un tableau initialement vide

n°1949636
OPINAISE
Posté le 11-12-2009 à 18:43:12  profilanswer
 

Bonsoir !
Je suis tout nouveau et j'ai du mal en programmation java.
Je vous expose mon problème. J'ai un fichier texte qui contient sur chaque ligne une date de commande/un numéro de commande/un numéro de client et le montant de la commande effectué. Je lis le fichier avec la méthode BufferedReader et je décompose chaque ligne avec la méthode "tokenizer". Jusque là j'y arrive.
Je veux calculer le chiffre d'affaire par client. Autrement dit je crée une classe client avec pour attribut son numéro client et son chiffre d'affaire. Je crée un tableau de client (de grandeur fixé). Je dois parcourir le fichier texte et regarder si le numéro client est deja dans mon tableau de client. Auquel cas j'ajoute le montant de la commande à son chiffre d'affaire initialement présent dans le tableau. Et s'il n'y est pas, je l'inscris dans le tableau et j'initialise son chiffre d'affaire.  Compliqué, j'ai moi même du mal à me relire. Le problème c'est que le tableau de client est initialement vide  
Bref, si vous voulez bien jeter un coup d'oeil à ce que j'ai fait et me donner des pistes pour continuer :
// ... //
 
Client[] Tabclient = new Client[100];
 
 
//Les variables numcli et montant sont récupérés du fichier texte avec la méthode Tok.nextToken(); //
 
numcli=Tabclient[0].numero_client;  
montant=Tabclient[0].chiffre_affaire;
for(int i=0; i<100; ++i)
    if(numcli.equals(Tabclient[i].numero_client)) {
        Tabclient[i].chiffre_affaire=Tabclient[i].chiffre_affaire + montant;}
    else { numcli=Tabclient[i].numero_client;
    Tabclient[i].chiffre_affaire = montant; }
 
Merci de votre aide

mood
Publicité
Posté le 11-12-2009 à 18:43:12  profilanswer
 

n°1949766
didier1809
${citation_perso}
Posté le 12-12-2009 à 18:50:18  profilanswer
 

Déjà, c'est plus facile en utilisant une ArrayList plutot qu'une array ;-)
 
Et la ca doit planter parce que Tabclient[0] == null.
 
Donc teste ca en premier lieu, si c'est null, tu dois faire un truc du genre Tabclient[i] = new Client(<tes arguments> )
 
Vérifie aussi ton nommage, je pense que ce n'est pas standard du tout (Majuscules, ...)
 
Met aussi des balises [ code ] -->
 

Code :
  1. private void toto(String tata){
  2. String tutu = tata;
  3. }


---------------
.
n°1949768
OPINAISE
Posté le 12-12-2009 à 18:59:01  profilanswer
 

Merci beaucoup du conseil je vais me renseigner sur "arraylist" je vois pas du tout ce que c'est.

n°1949864
cbeyls
Hail to the King, Baby
Posté le 13-12-2009 à 16:46:12  profilanswer
 

Encore mieux, je te conseille de stocker tes objets Client dans un HashSet et d'implémenter toi-même equals et compareTo dans la classe Client en utilisant le numéro de client comme clé de comparaison.
De cette façon la recherche d'un client dans le Set sera instantanée (pas besoin de parcourir le tableau ou lancer une recherche).
Si tu dois pouvoir récupérer la liste des clients triée par numéro de client régulièrement, tu peux utiliser un SortedSet qui est légèrement plus lent.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Entrer des données dans un tableau initialement vide

 

Sujets relatifs
Vérouiller les modification de données dans mes feuilles ExcelDonner source tableau variable
Copier/coller uniquement les cellules visbles d'un tableau ExcelImporter structure et données access dans Windev
clé étrangère videgerer une base de données access avec des codes barres
Base de données sur Excelvisuel studio 2008/inserer donnees dans une table sans doublon
test d'un retour de la commande for /f vide 
Plus de sujets relatifs à : Entrer des données dans un tableau initialement vide


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR