将两个列表合并到java中一个列表下的映射中

时间:2017-03-27 20:15:57

标签: java collections

我有两个这样的列表:

List<Post> posts = Post.findAll();
List<Comment> comments = Comment.findAll();

我想将这两个组合成一个列表但是有两个映射,这样当它返回到客户端时,它将是一个带有两个带名称的对象的数组。

例如客户端上的输出:

Array:[posts:{...}, comments:{...}]

我如何在java中实现这一点?

我尝试将两个列表添加到新数组中,但效率不高,因为我需要在客户端循环遍历完整数组:

List<Post> posts = Post.findAll();
List<Comment> comments = Comment.findAll();
List listFinal = new ArrayList();
listFinal.addAll(posts);
listFinal.addAll(comments);
return listFinal;

2 个答案:

答案 0 :(得分:1)

这是我的实现,我推广了n个列表。

st = s.length() < 3 ? s : s.charAt(0) + s.substring(1, s.length() - 1).replaceAll("e","") + s.charAt(s.length()-1);

该函数返回地图that you can iterate like a List.

答案 1 :(得分:0)

这不是最佳解决方案,但您可以创建一个具有Post&amp;的新对象。其中Comment。然后向其添加具有相同用户名PostComment的元素:

class PostData {
    Post post;
    Comment comment;

    @Override
    public String toString() {
        return post.toString() + comment.toString();
    }
}

然后创建该对象的列表:

List<PostData> postData = new ArrayList<>();