有一个记事本,能记录周一到周天,每天做的所有事情和事情的次数,周而复始。小明在这个记事本上记录了3周,内容如下:第1周
- 周1:学java,逛街
- 周2:打台球,旅游
- 周3:溜冰,吃烧烤
- 周4:打篮球,逛街,吃烧烤
- 周5:学前端,溜冰
- 周6:逛街,吃烧烤
- 周7:旅游,打台球
第2周:
- 周1:学java,学前端
- 周2:打台球,溜冰,学java
- 周3:旅游,吃烧烤
- 周4:逛街,学java
- 周5:学前端,旅游
- 周6:逛街,打台球,吃烧烤
- 周7:旅游,逛街,打台球,吃烧烤
第3周:
- 周1:学java,学前端,学python
- 周2:打台球,溜冰,学java,学C++
- 周3:旅游,吃烧烤,吃冰淇淋
- 周4:逛街,学java,吃烧烤
- 周5:学前端,旅游,打高尔夫
- 周6:逛街,打台球,吃烧烤,溜冰,蹦迪
- 周7:旅游,逛街,打台球,吃烧烤,跑步
使用Scanner接收小明3周所做的所有事情,并存入相应的集合中。然后输出周一到周五(不区分第几周)小明所做的所有事情以及相应的次数。(要求:所选的集合都要用泛型进行约束。)
public class JS {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeMap<String, Map<String,Integer>> week = new TreeMap<String, Map<String,Integer>>();
//数据录入
for (int i=1;i<=3;i++){
System.out.println("第"+"周:");
//?
Map<String,Integer> map;
for (int j=1;j<=7;j++){
map=new HashMap<String, Integer>();//每天都会清空昨天的事情和次数
System.out.println("周"+j+":");
String things = sc.next();//旅游,逛街,旅游,打台球,吃烧烤,跑步
String[] things_arr = things.split(",");
for (String s:things_arr){
// containsKey(s)如果此映射包含指定键的映射关系
map.put(s,map.containsKey(s)?map.get(s)+1:1);
}
//第二周,第三周
if (week.containsKey("周"+j)){
Map<String, Integer> map1 = week.get("周" + j);
mapAddMap(map1,map);
}else {//第一周
week.put("周"+j,map);
}
}
}
}
private static void mapAddMap(Map<String, Integer> map1, Map<String, Integer> map) {
}
}