Aller au contenu

[JAVA]Modification de code[Résolu]


Premium

Messages recommandés

Bonjour,

j'ai écrit ce code qui me permet de savoir la liste de nourriture à prévoir pour des animaux.

 public List<String> Food(){
List<String> food = new ArrayList<String>();

for(Animal a : list)
	food.add(a.getFeedingInfo());

return food;
}

Je voudrias regrouper les nourritures identiques.

Merci d'avance

Lien vers le commentaire
Partager sur d’autres sites

Une Map ? HashMap<Nourriture, Integer> => association entre une nourriture et son nombre d'éléments.

Par contre, au lieu de faire result.add tu dois faire (dans ta boucle)

Nourriture n = a.getFeedInfo();
Integer val = result.get(n);
if ( val == null ) {
 result.put(n, 1);
} else {
 result.put(n, val+1);
}

Lien vers le commentaire
Partager sur d’autres sites

Une Map ? HashMap<Nourriture, Integer> => association entre une nourriture et son nombre d'éléments.

Par contre, au lieu de faire result.add tu dois faire (dans ta boucle)

Nourriture n = a.getFeedInfo();
Integer val = result.get(n);
if ( val == null ) {
 result.put(n, 1);
} else {
 result.put(n, val+1);
}

Salut,

merci pour la code.

En compilant ce code :

 public Map<String, Integer> getFeedingInfo(){
Map<String, Integer> result = new HashMap<String, Integer>();

for(Animal a : list){
	String info = a.getFeedingInfo();
	Integer val = result.get(info);
	if ( val == null )
	result.put(info, 1);

	else 
	result.put(info, val+1);
}
return result;
}

,j'obtiens cet affichage :

{3 kg de bananes=2, 4 kg de viande et une jambe de porc=1, 1 poulet=1, 3 kg de viande=1}

Comment ça se fait qu'il y ait le '='?

De plus,comment faire en sorte que l'affichage se fasse comme ceci :

2 x 3 kg de bananes , 1 x 4 kg de viande,...

Lien vers le commentaire
Partager sur d’autres sites

2 méthodes :

1. Ecris ta propre classe qui dérive de Map, dans laquelle tu redéfinis juste la méthode toString

2. N'utilise pas directement la méthode toString de ta map, mais écris une classe (ex : FoodUtils) à laquelle tu délègues le soin de générér un affichage correct, en lui passant ta map. Une classe utilitaire de ce type aurait plutôt des méthodes statiques.

La méthode 2 est plus souple et plus propre, car elle n'interfère pas avec les classes existantes.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...