/ / Recherche de la température moyenne des villes (l’élément peut apparaître plusieurs fois) [fermé] - java, moyenne

Recherche de la température moyenne des villes (l’élément peut apparaître plusieurs fois) [fermé] - java, moyenne

J'ai eu des problèmes avec ce spécifiqueproblème en Java. Je suis coincé! Nous demandons à l'utilisateur d'entrer le nombre de données, puis les températures et les noms des villes, respectivement. Il est cependant indiqué que l'utilisateur peut entrer plusieurs températures pour une ville spécifique, par exemple: Vienne 23 (en C) Berlin 12 Paris 15 Berlin 9 Berlin 10 Paris 10

dans aucun ordre spécifique. J’ai fait cette partie avec deux tableaux 1D mais le programme demande que nous calculions la température moyenne de chaque ville, la température la plus élevée et la température minimale (évidemment, les valeurs min / max / moy seront les mêmes si nous n’avons qu'une seule température de une ville).

Je ne sais pas comment faire cette partiecompte tenu du fait que je dois parcourir le tableau des villes et vérifier combien de fois une ville spécifique y est répertoriée, puis trouver les températures respectives pour trouver la moyenne / min / max. J'ai le concept mais je ne peux pas le faire en Java. Des idées / suggestions? Très appréciée!

Réponses:

1 pour la réponse № 1

Vous devez changer votre Data Structure. L'utilisation de deux tableaux différents pour les attributs liés n'est pas une bonne idée.

Maintenez plutôt une cartographie entre la ville et toute sa température. Vous auriez besoin de créer un Map comme ça: -

Map<String, List<Double>> temperatureMap = new HashMap<String, List<Double>>();

Ensuite, pour chaque ville, vous pouvez facilement calculer la moyenne en utilisant le List<Double> pour chacun d'eux.


1 pour la réponse № 2

Vous pouvez utiliser:

 Map<City,List<Temprature>>();

Voici un exemple:

public class Temp {
Map<String,List<Double>> temp;

public Temp() {
this.temp = new HashMap<String, List<Double>>();
}

private void insertTemperature(String city, double t) {

if (temp.containsKey(city)) {
List<Double> list = temp.get(city);
list.add(t);
} else {
List<Double> list = new ArrayList<Double>();
list.add(t);
temp.put(city,list);
}
}


private double calcAVG(String city) {
List<Double> t = temp.get(city);
double ttSum = 0;
for (Double tt : t) {
ttSum += tt;
}

return ttSum/t.size();
}

}