Afficher une suite d'ArrayList

vbdr Messages postés 18 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 19 septembre 2013 - 25 févr. 2004 à 01:01
vbdr Messages postés 18 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 19 septembre 2013 - 25 févr. 2004 à 15:16
Je suis grand débutant en Java merci de m'aider
je voudrai afficher sous forme de tableau les objets d'un ArrayList et récuperer le dernier element de l'arrayList pour pouvoir calculer le total (prix total)
actuellement j'ai un affichage en continu ie : [obj1, obj2, ...objn]
voilà ce que j'ai écrit pour l'instant
Merci de votre aide

public class Client
{
public static void main(String[]args)throws IOException
{ char q;
Achat achat =new Achat();
float totalE=0;
float totalF = 0;

do
{
String libelle = Clavier.saisirString("Saisir le libelle de l'article : " );
float pu = Clavier.saisirFloat("Saisir le Prix unitaire de l'article : ");
char devise = Clavier.saisirChar("Saisir la devise du prix (F/E): ");
int qte = Clavier.saisirInt("Saisir la quantitée désirée : ");
float tva = Clavier.saisirFloat("Saisir la TVA pour l'article : ");

Article art=new Article(libelle,pu,devise,tva,qte);
achat.commande(art);
q = Clavier.saisirChar("\nEntrer un autre article (O/N) : " );


}while(q=='o'||q=='O');

System.out.println("\n\n----------------LISTE ET MONTANT DES ACHATS---------------------");
System.out.println("LIBELLE PRIX UNITAIRE DEVISE QTE TVA PRIX");
System.out.println("---------------------------------");
ArrayList v = new ArrayList();
Iterator i = v.iterator() ;
v= achat.lesarticles();
while(i.hasNext()){
System.out.println("achat.mes articles()"+ v );

System.out.println("---------------------------------");
System.out.println("---------------------------------");
System.out.println("TOTAL EN EUROS : " + totalE);
System.out.println("TOTAL EN FRANCS : " + totalF);
}

5 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
25 févr. 2004 à 09:55
Salut,

à priori tu ne dois pas voir la liste de tes articles vu que tu utilises un iterator sur une liste vide.
La méthode toString de List donne le contenu de la liste sous forme de tableau. Si les objet contenus dans cette liste ont redéfini eux aussi la méthode toString, tu auras le tableau souhaité. En clair il faut que ta classe Article redéfinisse la méthode toString en produisant l'affichage que tu souhaites.
De plus achat.lesarticles doit te renvoyer une List donc pour la boucle d'affichage des articles on peut avoir ça :

System.out.println("achat.mes articles() : "+ achat.lesarticles() );

System.out.println("---------------------------------");
System.out.println("---------------------------------");
System.out.println("TOTAL EN EUROS : " + totalE);
System.out.println("TOTAL EN FRANCS : " + totalF);
0
vbdr Messages postés 18 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 19 septembre 2013
25 févr. 2004 à 13:34
merci ça y'est je peux afficher mais en utilisant la classe vector et enumeration
comme ça :

System.out.println("-LISTE ET MONTANT DES ACHATS--
System.out.println("LIBELLE PRIX UNITAIRE DEVISE QTE TVA PRIX");
System.out.println("---------------------------------");

Vector v = achat.lesarticles();
Enumeration e = v.elements();

while( e.hasMoreElements() ){
System.out.println(e.nextElement().toString());

mon pb maintenant est de pouvoir récupérer prixachat() de chaque objet :
un vecteur est une suite d'objets
[obj1, obj2,....objn]
l'objet étant un ensemble de variables de type différents:
obj1 = libelle, PU, devise, tva, prixachat()
comment je fais pour récupérer prixachat() de obj1 puis prixachat() de obj2...pour pouvoir les cumuler ?
float prixTotal =Calculette.cumul(prixachat()); puisque prix d'achat renvoie un float
Sauf que il ne connait pas prixachat()

Merci de ton aide
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
25 févr. 2004 à 13:46
Salut,

si j'ai bien compris ton Vector contient des objets de type Article.
Il suffit d'appeller la méthode sur ces objets en les ayant d'abord caster en Article (Vector ne contient que des objets de type Object). De plus il vaut mieux utiliser Iterator (recommendation de Sun pour l'utilisation du framework Collection)
en gros ça donne ça :

double prixTotal=0;
Iterator iterator=achats.lesArticles().iterator();
while(iterator.hasNext()){
Article article=(Article) iterator.next();
System.out.println(article);
prixTotal+=Calculette.cumul(article.prixachat());
}
System.out.println("prix total = "+prixTotal);
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
25 févr. 2004 à 13:49
Oups !
pour le calcul du prix total j'ai pas vu que la calculette fait le cumul. Donc il n'y a pas besoin du double prixTotal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vbdr Messages postés 18 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 19 septembre 2013
25 févr. 2004 à 15:16
merci bcp ça marche nickel
0
Rejoignez-nous