[JAVA] Problème méthode

Fermé
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 - 22 déc. 2009 à 14:20
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 - 22 déc. 2009 à 18:49
Bonjour, je suis en train de créer une méthode pour répondre à une question de mon prof (je suis étudiant) et j'ai un problème par rapport à la question, je ne sais pas quoi ajouter à mon objet..

Voilà la question: Écrire la méthode getCatégories(nbJouets : entier) : Collection de Catégories de la
classe Catalogue qui retourne une liste d'objet Catégorie ayant un nombre de jouets
au catalogue égal à son argument nbJouets.


Voici ce que j'ai sur la classe Catalogue:
Classe Catalogue
privé
année : Chaîne
lesJouets : Dictionnaire de <Jouet, Entier>
// Contient pour chaque jouet du catalogue :
// - en clé, l’objet de la classe Jouet
// - en valeur, la quantité de ce jouet distribuée pour ce catalogue
public
Constructeur Catalogue (uneAnnée : Chaîne)
Fonction GetAnnée ( ) : Chaîne
Fonction QuantitéDistribuée () : Entier
// Retourne la quantité totale de jouets distribués pour ce catalogue.
Fonction StatCatég () : Dictionnaire de <Catégorie, Entier>
// Retourne un dictionnaire contenant pour chaque catégorie de ce catalogue :
// - en clé, l’objet de la classe Catégorie
// - en valeur, la quantité de jouets distribués pour cette catégorie.
Fin classe



Et voici le code que j'ai réalisé:
public Vector<Categorie> getCategorie(int nbJouets)
	{
		int nombreJouets = nbJouets;
		Vector res = new Vector<Categorie>();
		for (int i = 1; i != nombreJouets; i++)
		{
			res.add();
		}
		return res;
	}


Mon problème est donc que je ne sais pas trop quoi ajouter à mon vecteur.. :/
A voir également:

8 réponses

Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
22 déc. 2009 à 17:03
Personne ne sait?
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
22 déc. 2009 à 17:30
Déjà je ne vois pas pourquoi tu utilises Vector alors qu'on te demande une liste !

Sinon, ton énoncé est assez clair, ta liste doit contenir les jouets issus du dictionnaires lorsque la quantité disponible de ce jouet est égal à l'entier passé en paramètre.

Si tu as Dictionnaire={(peluche,3),(poupée,2), (voiture,3)}
getCategorie(3) => [peluche, voiture]
getCategorie(2) => [poupée]
0
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
22 déc. 2009 à 17:41
On ne peut pas comparé une liste avec un vecteur?

Un vecteur est collection d'objets un peu comme un tableau sauf que celui-ci peut voir sa capacité augmenter en fonction des besoins.

Le dernier point où je ne comprends pas trop, c'est qu'il faut parcourir le dictionnaire donc il faut aussi que j'appelle la méthode StatCatég() dans ma méthode getCatégories()?
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
22 déc. 2009 à 17:50
Moi si je suis un prof bête et méchant, je demande une liste, j'attends une liste.
Après bien sûr qu'on peux transformer un Vector en List mais autant faire une liste directement...
En plus Vector est une classe "deprecated", c'est à dire qu'il vaut mieux ne pas l'utiliser !

Après je ne pense pas que t'ai besoin de StatCatég() tant que tu restes à l'intérieur de ta classe, tu peux parcourir ton dictionnaire lesJouets directement.
0

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

Posez votre question
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
22 déc. 2009 à 18:13
Comment je peux prendre seulement la quantité de jouet distribué par le catalogue?

Ce code là est mieux? (manque le code pour voir la quantité distribué par le catalogue)
public ArrayList<Categorie> getCategorie(int nbJouets)
	{
		int nombreJouets = nbJouets;
		ArrayList<Categorie> res = new ArrayList<Categorie>();
		for (int i=1; i!=lesJouets.length(); i++ )
		{
			if (nombreJouets == quantité de jouets distribué par le catalogue)
			{
				res.add(lesJouets.elementAt(i));
			}
		}
	return res;
	}
0
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
22 déc. 2009 à 18:27
Mon prof a dit en cours qu'il fallait utiliser StatCatég().

Il faut donc récupérer le dictionnaire de la méthode StatCatég mais n'ayant pas une moyenne frôlant les 15, j'ai un peu de mal, je peux créer autre liste qui récupère les données de la méthode StatCatég()?

Autre question, comment je peux faire pour connaître juste la quantité de jouets distribués par le catalogue?
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
22 déc. 2009 à 18:37
Ce n'est pas le catalogue qui a une quantité mais les éléments du catalogue, et en l'occurrence du dictionnaire
Ici ce n'est pas nécessaire d'utiliser getCateg car tu as déjà accès à lesJouets...

Le truc c'est que c'est du pseudo-code que tu donnes, la classe Dictionnaire n'existe pas vraiment
Normalement on devrait avoir quelque chose comme

for (int i=0; i<lesJouets.length(); i++ )
{
	if (nombreJouets == lesJouets.elementAt(i).getValeur())
		res.add(lesJouets.elementAt(i).getJouet());
}
0
Absot Messages postés 777 Date d'inscription mardi 28 octobre 2008 Statut Membre Dernière intervention 4 septembre 2020 44
22 déc. 2009 à 18:49
C'est bien du pseudo-code, c'est une des questions d'un examen en programmation de niveau bac+2.

Je pense que le code doit être bon:
	public ArrayList<Categorie> getCategorie(int nbJouets)
	{
		int nombreJouets = nbJouets;
		ArrayList<Categorie> res = new ArrayList<Categorie>();
		for (int i=0; i!=lesJouets.length(); i++ )
		{
			if (nombreJouets == lesJouets.elementAt(i).getNombre())
			{
				res.add(lesJouets.elementAt(i).getJouet());
			}
		}
		return res;
	}


Si jamais j'ai quelque chose qui ne va pas, je verrais directement avec mon prof, merci de ton aide. :)
0