如何在Java 8中迭代对象数组列表并设置为另一个对象列表? [英] How to iterate List of object array and set to another object list in 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);
});
推荐答案
使用Stream
将Object[]
数组映射到LatestNewsDTO
s并将它们收集到List
中:
Use a Stream
to map your Object[]
arrays to LatestNewsDTO
s 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屋!