[JAVA]Modification de code
Le neuf
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'ai écrit ce code qui me permet de savoir la liste de nourriture à prévoir pour des animaux.
Je voudrais savoir comment je dois modifier ce code pour ne pas avoir :
mais plutôt:
c'est à dire regrouper les nourritures identiques.
Merci d'avance
j'ai écrit ce code qui me permet de savoir la liste de nourriture à prévoir pour des animaux.
public List<String> getFood(){
List<String> result = new ArrayList<String>();
for(Animal a : list)
result.add(a.getFeedingInfo());
return result;
}
Je voudrais savoir comment je dois modifier ce code pour ne pas avoir :
[3 kg de bananes, 3 kg de viande, 3 kg de bananes, 4 kg de viande , 1 poulet]
mais plutôt:
[2 x 3 kg de bananes, 3 kg de viandes, 4 kg de viande , 1 poulet]
c'est à dire regrouper les nourritures identiques.
Merci d'avance
A voir également:
- Votre organisation exige que vous modifiez votre code confidentiel
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Supprimer code confidentiel windows 10 - Guide
1 réponse
Je ferai comme ceci:
;-)
HackTrack
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class AnimalFeed {
private Map feedInfo;
private List animals;
public AnimalFeed() {
super();
animals = new ArrayList();
feedInfo = new HashMap();
}
public List getFood() {
List food = new ArrayList();
for(int i=0 ; i<animals.size() ; i++){
Animal animal = (Animal)animals.get(i);
FeedType type = animal.getFeedType();
int quantity = animal.getFeedQuantity();
if(feedInfo.get(type)==null){
feedInfo.put(type,new Integer(quantity));
}else{
int totalQuantity = ((Integer)feedInfo.get(type)).intValue() + quantity;
feedInfo.put(type,new Integer(totalQuantity));
}
}
Iterator it = feedInfo.keySet().iterator();
while(it.hasNext()){
FeedType type = (FeedType)it.next();
StringBuffer buffer = new StringBuffer();
buffer.append((Integer)feedInfo.get(type)).append(" ").append(type.getFeedMeasure()).append(" de ").append(type.getFeedName());
food.add(buffer.toString());
}
return food;
}
public void addAnimal(Animal animal) {
animals.add(animal);
}
public class Animal {
private FeedType feedType;
private int feedQuantity;
public Animal(String name) {
super();
}
public FeedType getFeedType() {
return feedType;
}
public int getFeedQuantity() {
return feedQuantity;
}
public void setFeedQuantity(int feedQuantity) {
this.feedQuantity = feedQuantity;
}
public void setFeedType(FeedType feedType) {
this.feedType = feedType;
}
}
public class FeedType {
private String feedName;
private String feedMeasure;
public FeedType(String feedName, String feedMeasure) {
super();
this.feedName = feedName;
this.feedMeasure = feedMeasure;
}
public String getFeedName() {
return feedName;
}
public String getFeedMeasure() {
return feedMeasure;
}
}
public static void main(String[] args) {
AnimalFeed demo = new AnimalFeed();
FeedType poulet = demo.new FeedType("poulet", "pièce");
FeedType abats = demo.new FeedType("abats", "kg");
Animal lion = demo.new Animal("Lionel");
lion.setFeedType(poulet);
lion.setFeedQuantity(42);
demo.addAnimal(lion);
Animal chien = demo.new Animal("Rex");
chien.setFeedType(abats);
chien.setFeedQuantity(2);
demo.addAnimal(chien);
Animal serpent = demo.new Animal("Aie confianssssse!");
serpent.setFeedType(poulet);
serpent.setFeedQuantity(1);
demo.addAnimal(serpent);
System.out.println(demo.getFood());
}
}
;-)
HackTrack