java - 函数式编程(Streams)返回类型ArrayList java

标签 java functional-programming java-8 java-stream

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

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

我想返回ArrayList。我对返回列表没有任何问题(Collectors.asList 等......)

问候

最佳答案

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

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

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

List<String> result = Arrays.stream(input)
                            .filter(a -> a.length() > 10)
                            .distinct()
                            .collect(Collectors.toList());

关于java - 函数式编程(Streams)返回类型ArrayList java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33320422/

相关文章:

java - 什么是 ~ 运算符

java - org.apache.axiom.om.impl.llom.OMTextImpl 无法转换为 org.apache.axiom.om.OMElement

functional-programming - 自动机理论和函数式编程

scala - 如何交换到 Seq 中的元素

java - 如何捕获从 lambda 抛出的异常

java - 为什么 lambda 调用有 2 个堆栈帧?

java - SQL数据库错误: Table has no column name

java - Jenkins:每个环境(DEV、QA、UAT 和 PROD)和包 war 的参数化属性文件

sql - 程序结构——简单的命令行待办事项列表应用程序——Haskell 的方式是什么?

java - 在 java 8 foreach 中使用字符串替换