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流从列表中创建一个对象[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中创建一个列表来保存对象

在对象中创建一个具有不同数组元素的新数组[关闭]

如何使用流从对象列表中获取地图? [复制]

使用 Counter 对象从两个列表中创建字典

如何在 Java 中创建字典? [关闭]

在 asp.net 中创建静态对象列表