为了账号安全,请及时绑定邮箱和手机立即绑定

多个LIST集合 排序问题

多个LIST集合 排序问题

qq_泽鸿电子商行_0 2019-01-27 11:04:25
A LISTname core(day)1班 2分2班 3分3班 5分B LISTname core(month)1班 10分2班 20分3班 30分C LISTname core(year)1班 110分2班 120分3班 120分希望最后的结果是D LISTname core(day) core(month) core(year)1班       2           10              1102班       3           20              1203班      5            30               120
查看完整描述

3 回答

?
小草1434

TA贡献106条经验 获得超23个赞

对于这个问题,在基于面向对象的编程可以采取如下做法:

定义一个班级分数的pojo类:ClassCore.java

public class ClassCore{
    private String name;
    // 考虑到显示的内容有中文文字,故类型为String
    private String dayCore;
    private String montyCore;
    private String yearCore;
    // 省略getter/setter
}

public class ClassCoreList {
    private String name;
    private String core;
    // 省略getter/setter
}

然后就是实际的逻辑方法:

public void main(){
    // 获取并整理成三个分数列表
    // 调用deamMain(三个分数列表);
    // 调用打印方法pring(list);
}
// 打印
public void print(List<ClassCore> list){
    // 遍历列表并且打印格式自己调整
};
// 处理分数
public List<ClassCore> dealMain(
        List<ClassCoreList> dayCoreList,
        List<ClassCoreList> monthCoreList,
        List<ClassCoreList> yearCoreList
){
     List<ClassCore> list = new ArrayList();
     Map<String,ClassCore> map= new HashMap<>();
     map = dealList(map,dayCoreList,0);
     map = dealList(map,monthCoreList,1);
     map = dealList(map,yearCoreList,2);
     for (Entry<String, Object> entry : map.entrySet()) {
         list.add(entry.getValue());
     }
     return list;
}
// 将内容进行调整
public Map<ClassCore> dealList(Map<String,ClassCore> map,List<ClassCoreList> coreList,int flag){
    if(map == null){
        map= new HashMap<>();
    } 
    ClassCore temp = null;
    for(ClassCoreList classCore:dayCoreList ){
        if(map.containsKey(classCore.getName())){
            temp = map.get(classCore.getName());
        }else {
            temp = new ClassCore();
            temp.setName(classCore.getName());
        }
        if(flag==0){
            temp.dayCore(classCore.getCore);
        }else if(flag==1){
            temp.monthCore(classCore.getCore);
        }else if(flag==2){
            temp.yearCore(classCore.getCore);
        }
        map.put(temp);
    }
    return map;
}


查看完整回答
反对 回复 2019-01-31
  • 3 回答
  • 0 关注
  • 883 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信