Premium Posté(e) le 17 avril 2006 Partager Posté(e) le 17 avril 2006 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 More sharing options...
Baldurien Posté(e) le 17 avril 2006 Partager Posté(e) le 17 avril 2006 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 More sharing options...
Premium Posté(e) le 17 avril 2006 Auteur Partager Posté(e) le 17 avril 2006 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 More sharing options...
Sentinel Posté(e) le 17 avril 2006 Partager Posté(e) le 17 avril 2006 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 More sharing options...
Baldurien Posté(e) le 17 avril 2006 Partager Posté(e) le 17 avril 2006 Au fait, Premium, tu ne serais pas en Licence à Marne la Vallée? (je dis ça, j'dis rien :)) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.