当前位置: 首页 > 知识库问答 >
问题:

函数式编程(Streams)返回类型ArrayList java[重复]

祁飞飙
2023-03-14

我有一个列表和另一个数组列表。我想区分它们并返回新的数组列表。

String[] input = scn.nextLine().split("\\s");
ArrayList<String> result = Arrays.stream(input).filter(a -> a.length() > 10).distinct()

我想返回ArrayList。我在返回列表(Collectors.asList等)方面没有问题

问候

共有2个答案

厉永宁
2023-03-14

收集为列表,然后从所述列表中创建新的ArrayList。

邢永安
2023-03-14

您应该通过收集方法收集结果:

ArrayList<String> result = Arrays.stream(input)
                                 .filter(a -> a.length() > 10)
                                 .distinct()
                                 .collect(Collectors.toCollection(ArrayList::new));

如果您不关心特定的< code>List实现,那么最好使用< code>toList()收集器:

List<String> result = Arrays.stream(input)
                            .filter(a -> a.length() > 10)
                            .distinct()
                            .collect(Collectors.toList());
 类似资料:
  • 我有一个匿名函数,如下所示: 我想指定cb必须返回一个布尔值,但我是一个打字稿新手,不知道我是否可以(或者即使我这样做或不这样做会对解析器产生影响)。 我该怎么做?

  • 问题内容: 我有一个模块分开的应用程序。有几个实体和CSV模块。CSV模块仅支持struct(Entity),但我想使CSV模块可与任何类型的实体一起使用。现在,它的工作方式如下:Csv模块从通道接收数据并将其严格转换为struct。我如何实现动态返回类型,因此它可以与任何类型的Entity一起使用,而不仅限于 问题答案: 快速/肮脏的解决方案: 返回接口{},但是您最终欺骗了编译器,而类型检查的

  • 我目前正在学习C#,有人告诉我,可以使用explicit关键字重载方法返回类型,但他从未解释过如何重载。我搜索了所有地方,也阅读了一些关于stackoverflow的问题和答案,但我没有发现这样的事情,而且,在大多数情况下,回答的人说不可能通过返回类型重载方法。在这一切之后,我开始认为没有这种可能性。现在有人真的知道如何通过使用explicit关键字来重载方法返回类型了吗?或者这是可能的吗?先谢谢

  • 我有这个异步函数,并试图返回一个对象或null。 但是我在定义类型时出错了。 如何定义这种数据类型? 类型“ContactId | null”不可分配给类型“string | null” 类型“ContactId”不能分配给类型“string”。

  • 我想通过TypeScript泛型定义函数返回类型。所以R可以是我将定义的任何东西。 <代码>。。。许诺 错误:(29,9)TS2322:类型“字符串”不可分配给类型“R”。“字符串”可分配给类型“R”的约束,但“R”可以用约束“{}”的不同子类型实例化。

  • 我在玩TypeScript中的条件类型。我想用条件返回类型编写一个函数。如果函数被传递一个字符串,它将返回一个名称,否则它将返回一个Id。 我在返回语句中得到以下错误: 我错过了什么?Thnx! 编辑:直接摘自Anders Hejlsberg在Build 2018上的演讲:https://youtu.be/hDACN-BGvI8?t=2241 他甚至说“我们不再需要写函数重载了…” 如果我将代码更