** 1, l'information «nom de l'étudiant, nom du sujet / score» a été transformée en une structure de données cartographiques bidimensionnelle. ** ** ** 2, le score total et le score moyen de chaque élève ont été produits à l'aide de l'instruction for. ** **
Les classes de collection ne peuvent pas stocker quoi que ce soit qui ne soit pas une instance. Cependant, il peut être stocké en convertissant les informations de type int en type Integer (classe wrapper).
Exécuter sur Eclipse Oxygen
Un programme qui crée et transforme une carte en deux dimensions
import java.util.LinkedHashMap;
import java.util.Map;
public class MapScore {
public static void main(String[] args) {
//Créer une carte 2D
//Immédiatement avant le nom de la carte, c'est-à-dire Map<String, Map<String, Integer>>Jusqu'au type de données
Map<String, Map<String, Integer>> nameMap = new LinkedHashMap<String, Map<String, Integer>>();
//Suzuki
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("langue nationale", 78);
scoresMap_suzuki.put("Math", 90);
scoresMap_suzuki.put("Anglais", 20);
//Monsieur Sato
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("langue nationale", 50);
scoresMap_satoh.put("Math", 40);
scoresMap_satoh.put("Anglais", 90);
//Tanaka
Map<String, Integer> scoresMap_tanaka = new LinkedHashMap<String, Integer>();
scoresMap_tanaka.put("langue nationale", 80);
scoresMap_tanaka.put("Math", 60);
scoresMap_tanaka.put("Anglais", 85);
//Réalisez une carte à deux dimensions en mettant les trois cartes ci-dessus dans la valeur de la carte de nom
nameMap.put("Suzuki", scoresMap_suzuki);
nameMap.put("Sato", scoresMap_satoh);
nameMap.put("Tanaka", scoresMap_tanaka);
//Tournez la carte de nom avec Extended pour
//Dans le cas de LinkedHashMap, il est récupéré dans l'ordre de stockage.
for (Map.Entry<String, Map<String, Integer>> element : nameMap.entrySet()) {
//Obtenez la valeur de nameMap et attribuez-la à une nouvelle carte
Map<String,Integer> scores = element.getValue();
int sum = 0;
int avg = 0;
//scoresMap_Tournez la valeur du nom, c'est-à-dire le score, et remplacez-la par somme
for(int hogeInt : scores.values()){
sum += hogeInt;
avg = sum / scores.size();
}
//Pour le nombre de personnes((Pour 3 personnes)
System.out.println(element + "Le score total est" + sum + " " + "La moyenne est" + avg);
}
}
}
Résultat d'exécution
Résultat d'exécution
Suzuki={langue nationale=78,Math=90,Anglais=20}La note totale est de 188 La moyenne est de 62
Sato={langue nationale=50,Math=40,Anglais=90}La note totale est de 180 La moyenne est de 60
Tanaka={langue nationale=80,Math=60,Anglais=85}La note totale est de 225 La moyenne est de 75
Recommended Posts