如何在Java 8中迭代对象数组列表并设置为另一个对象列表? [英] How to iterate List of object array and set to another object list in java 8?

查看:103
本文介绍了如何在Java 8中迭代对象数组列表并设置为另一个对象列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前,我必须迭代该数组中的对象数组,并将其添加到我的LatestNewsDTO列表中,我在代码工作下所做的事情,但仍然不满意我的方式.是他们的任何有效方式,请让我知道.

Currently I have list of object array from that array i have to Iterate and add to the list of my LatestNewsDTO what i have done below code working but still i am not satisfy with my way . Is their any efficient way please let me know.

谢谢

List<Object[]> latestNewses = latestNewsService.getTopNRecords(companyId, false, 3);
List<LatestNewsDTO> latestNewsList = new ArrayList();
latestNewses.forEach(objects -> {
    LatestNewsDTO latestNews = new LatestNewsDTO();
    latestNews.setId(((BigInteger) objects[0]).intValue());
    latestNews.setCreatedOn((Date) objects[1]);
    latestNews.setHeadLine((String) objects[2]);
    latestNews.setContent(((Object) objects[3]).toString());
    latestNews.setType((String) objects[4]);
    latestNewsList.add(latestNews); 
});

推荐答案

使用StreamObject[]数组映射到LatestNewsDTO s并将它们收集到List中:

Use a Stream to map your Object[] arrays to LatestNewsDTOs and collect them into a List :

List<LatestNewsDTO> latestNewsList =
    latestNewses.stream()
                .map(objects -> {
                    LatestNewsDTO latestNews = new LatestNewsDTO();
                    latestNews.setId(((BigInteger) objects[0]).intValue());
                    latestNews.setCreatedOn((Date) objects[1]);
                    latestNews.setHeadLine((String) objects[2]);
                    latestNews.setContent(((Object) objects[3]).toString());
                    latestNews.setType((String) objects[4]);
                    return latestNews;
                })
                .collect(Collectors.toList());

当然,如果您创建一个LatestNewsDTO的构造函数来接受该数组,则代码看起来会更加优美.

Of course, if you create a constructor of LatestNewsDTO that accepts the the array, the code will look more elegant.

List<LatestNewsDTO> latestNewsList =
    latestNewses.stream()
                .map(objects -> new LatestNewsDTO(objects))
                .collect(Collectors.toList());

现在LatestNewsDTO (Object[] objects)构造函数可以保存解析数组并设置实例成员的逻辑.

Now the LatestNewsDTO (Object[] objects) constructor can hold the logic that parses the array and sets the members of your instance.

这篇关于如何在Java 8中迭代对象数组列表并设置为另一个对象列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆