Java流从列表中创建一个对象[关闭]
Posted
技术标签:
【中文标题】Java流从列表中创建一个对象[关闭]【英文标题】:Java streams create an object out of list [closed] 【发布时间】:2022-01-22 22:56:30 【问题描述】:我对 Java 流很陌生。我有一个项目清单。我还有另一个包含两个属性的对象:
-
项目列表。
项目数。
一般的方法是我创建一个对象实例并设置它的属性,如下所示:
CustomObject myCustomObject = new CustomObject();
myCustomObject.setList(myList);
myCustomObject.setSize(myList.size());
我如何使用流的方法(如 map 或 flatmap)来实现相同的效果?
【问题讨论】:
我不知道你在问什么(或者它与 spring-boot 有什么关系) 把 Stream 想象成一个 List,你可以应用 map (更改为其他内容)和 filter (减少项目数)之类的函数,但这些函数直到最终收集才执行(toList) 或 forEach 或其他。这称为延迟执行。因此,如果您尝试发送数据,则不能像 List 一样传递 Stream。它更像是自己编写的 SQL 查询或程序,适用于数据序列 如果您有一个列表,您将执行 for 循环并为返回值创建另一个列表,如果您有一个 if 语句,这将等效于map
仅将一些项目放入返回值列表中,这将等同于 filter
var co = new CustomObject(); Stream.of(co).forEach(o -> o.setList(myList); o.setSize(myList.size());
。但是,我不知道你为什么想要这个。
顺便说一句,CustomObject
的列表和大小可以独立设置,我觉得很奇怪。
【参考方案1】:
// 我假设你有一组列表或列表列表? // 在这种情况下,你可以通过'map'操作创建一个CustomObjects列表。
List<List<T>> myLists;
List<CustomObject> customObjects;
List<CustomObject> customObjList = myLists.stream()
.map(list -> new CustomObject(list, list.size()))
.collect(Collectors.toList());
但是,这个问题很模糊,所以不能保证。 另外,spring-boot 和 this 之间没有联系。
【讨论】:
以上是关于Java流从列表中创建一个对象[关闭]的主要内容,如果未能解决你的问题,请参考以下文章