请问两个不同对象的list集合怎么合并为一个集合并且按照某个共同时间字段进行排序?

String userId = request.getHeader("id");
List<Evaluate> evaluates = evaluateDao.findByUserId(Long.valueOf(userId));
List<Secondeva> secondevas = secondevaDao.findByUserId(Long.valueOf(userId));

用一个父类对象list,再addAll()进行合并,最后重写compare()对时间排序。不过看你这个业务逻辑,用a.userId = b.userId 两表联查是最好的,这样排序在SQL里写。有分页需求的时候还可以分页

       String userId = request.getHeader("id");
        List<Evaluate> evaluates = evaluateDao.findByUserId(Long.valueOf(userId));
        List<Secondeva> secondevas = secondevaDao.findByUserId(Long.valueOf(userId));
        //这里可以使用stream流先把两个list根据某个相同时间字段分别排序
        List resultList=new ArrayList();
        for (int i = 0; i < evaluates.size(); i++) {
            for (int j = 0; j <secondevas.size() ; j++) {
                if (evaluates.get(i).getTime<secondevas.get(i).getTime)
                    resultList.add( evaluates.get(i));
                else
                    resultList.add(secondevas.get(j));

            }

        }

可以的,你可以先把两个list遍历,然后在遍历里面一一比较两个集合某个共同时间字段大小,然后添加到新的list里面。有点像冒泡排序

这合并不了..类型都不一样..你写个超类。字段都封装好。

然后再排序。

你是想怎么合并呢?合并是肯定可以的,因为list里面默认是Object类型,排序就要自己写算法处理了。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632