对于这个问题,在基于面向对象的编程可以采取如下做法:
定义一个班级分数的pojo类:ClassCore.java
publicclassClassCore{privateStringname;//考虑到显示的内容有中文文字,故类型为StringprivateStringdayCore;privateStringmontyCore;privateStringyearCore;//省略getter/setter}publicclassClassCoreList{privateStringname;privateStringcore;//省略getter/setter}然后就是实际的逻辑方法:
publicvoidmain(){//获取并整理成三个分数列表//调用deamMain(三个分数列表);//调用打印方法pring(list);}//打印publicvoidprint(Listlist){//遍历列表并且打印格式自己调整};//处理分数publicListdealMain(ListdayCoreList,ListmonthCoreList,ListyearCoreList){Listlist=newArrayList();Mapmap=newHashMap();map=dealList(map,dayCoreList,0);map=dealList(map,monthCoreList,1);map=dealList(map,yearCoreList,2);for(Entryentry:map.entrySet()){list.add(entry.getValue());}returnlist;}//将内容进行调整publicMapdealList(Mapmap,ListcoreList,intflag){if(map==null){map=newHashMap();}ClassCoretemp=null;for(ClassCoreListclassCore:dayCoreList){if(map.containsKey(classCore.getName())){temp=map.get(classCore.getName());}else{temp=newClassCore();temp.setName(classCore.getName());}if(flag==0){temp.dayCore(classCore.getCore);}elseif(flag==1){temp.monthCore(classCore.getCore);}elseif(flag==2){temp.yearCore(classCore.getCore);}map.put(temp);}returnmap;} |