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

用Java 8在数组/列表中收集文件名[重复]

刘凡
2023-03-14

因此,我一直在尝试收集特定文件夹中的所有文件名,并将它们存储在数组[]中,或者如注释所示,存储在列表中。

以下是到目前为止的代码:

String[] alist = new String[];
Files.list(Paths.get("mypath")).filter(Files::isRegularFile).forEach(System.out::println(alist);
String[] alist;
alist = Files.list(Paths.get("mypath")).filter(Files::isRegularFile).toArray(String[]::new);
Stream<String> alist = Stream.of(Files.list(Paths.get("path")).filter(Files::isRegularFile).toString());
                    String[] alist2 = alist.toArray(size -> new String[size]);

谢谢你的帮助!

共有1个答案

岳嘉容
2023-03-14

正如@zforgo所说,只需使用stream.map(用于处理每个元素)和collect来获得列表结果

List<String> filenames = Files.list(Paths.get("D:\\game\\Rayman1"))
    .filter(Files::isRegularFile)
    .map(p -> p.getFileName().toString())
    .collect(Collectors.toList());
 类似资料:
  • 我想迭代一个对象列表。每个对象都包含一些对象的变量。更具体地说: 我的名单是: 所需的映射结构是:

  • 我有以下代码: 此代码不工作,编译错误是: 方法无法应用于给定类型 必选:

  • 当流过< code>List时,如何将输出收集到一个链表中? 我尝试了以下方法: 但是这给了 java.util.数组列表不能转换为 java.util.链接列表.

  • 问题内容: Java 8中有什么方法可以将一个元素分组而不收集它们?我希望结果再次出现。因为我必须处理大量数据甚至是无限流,所以我无法先收集数据并再次流处理结果。 所有需要分组的元素在第一流中都是连续的。因此,我喜欢使流评估保持懒惰。 问题答案: 无法使用标准Stream API做到这一点。通常,您无法执行此操作,因为将来总是有可能出现属于任何已创建组的新项目,因此,在处理所有输入之前,您无法将组

  • 在Java8中有什么方法可以在中分组元素而不收集它们吗?我希望结果再次成为。因为我必须处理大量的数据,甚至是无限的流,所以我不能首先收集数据,然后再次流化结果。 所有需要分组的元素在第一个流中是连续的。因此,我喜欢保持流评估懒惰。

  • 例如,我有一个类包含name和surname字段。 我想从的中收集一个的(名字和姓氏都在一起),但似乎无法对每个列表使用两次map或无法对每个列表使用两次stream。 我做错了什么?