程序代码:
package com.huawei.day25;
import java.util.HashMap;
import java.util.Map;
public class Test {
private static final String ITEM_A = "item-a";
private static final String ITEM_B = "item-b";
private static final String ITEM_C = "item-c";
private static final String ITEM_D = "item-d";
//
private static final String CLASS_KEY = "className";
private static final String CLASS_A = "class-a";
private static final String CLASS_B = "class-b";
private static final String CLASS_C = "class-c";
//
private static final String GENDER_KEY = "gender";
private static final String FEMALE = "female";
private static final String MALE = "male";
public static void main(String[] args) {
// stuId,items
Map<Integer, Map<String, Integer>> scoreMap = new HashMap<>();
// stuId,info
Map<Integer, Map<String, String>> infoMap = new HashMap<>();
//
Map<String, Integer> score = new HashMap<>();
score.put(ITEM_A, 1);
score.put(ITEM_B, 2);
score.put(ITEM_C, 3);
score.put(ITEM_D, 4);
scoreMap.put(1, score);
scoreMap.put(2, score);
scoreMap.put(3, score);
//
Map<String, String> info = new HashMap<>();
info.put(CLASS_KEY, CLASS_A);
info.put(GENDER_KEY, FEMALE);
infoMap.put(1, info);
info = new HashMap<>();
info.put(CLASS_KEY, CLASS_B);
info.put(GENDER_KEY, MALE);
infoMap.put(2, info);
info = new HashMap<>();
info.put(CLASS_KEY, CLASS_C);
info.put(GENDER_KEY, FEMALE);
infoMap.put(3, info);
System.out.println(scoreMap);
System.out.println(infoMap);
// analysis result
// class,score
Map<String, Integer> classMap = new HashMap<>();
// class,gender,score
Map<String, Map<String,Integer>> stuMap = new HashMap<>();
for(int stuId : scoreMap.keySet()) {
Map<String, Integer> entry = scoreMap.get(stuId);
String className = infoMap.get(stuId).get(CLASS_KEY);
String gender = infoMap.get(stuId).get(GENDER_KEY);
for(String itemName : entry.keySet()) {
if(stuMap.get(className) == null) {
stuMap.put(className, new HashMap<>());
}
if(classMap.get(className) == null) {
classMap.put(className, 0);
}
if(stuMap.get(className).get(gender)==null) {
stuMap.get(className).put(gender, 0);
}
int tmpScore = stuMap.get(className).get(gender);
stuMap.get(className).put(gender, tmpScore + entry.get(itemName));
classMap.put(className, tmpScore + entry.get(itemName));
}
}
System.out.println(classMap);
System.out.println(stuMap);
}
}
{1={item-d=4, item-c=3, item-b=2, item-a=1}, 2={item-d=4, item-c=3, item-b=2, item-a=1}, 3={item-d=4, item-c=3, item-b=2, item-a=1}}
{1={gender=female, className=class-a}, 2={gender=male, className=class-b}, 3={gender=female, className=class-c}}
{class-b=10, class-a=10, class-c=10}
{class-b={male=10}, class-a={female=10}, class-c={female=10}}
[此贴子已经被作者于2018-10-22 08:13编辑过]