Entrer des données dans un tableau initialement vide - Java - Programmation
Marsh Posté le 12-12-2009 à 18:50:18
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 :
|
Marsh Posté le 12-12-2009 à 18:59:01
Merci beaucoup du conseil je vais me renseigner sur "arraylist" je vois pas du tout ce que c'est.
Marsh Posté le 13-12-2009 à 16:46:12
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.
Marsh Posté le 11-12-2009 à 18:43:12
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