【问题标题】:Convert List of File[] into File[]将文件 [] 列表转换为文件 []
【发布时间】:2016-09-21 07:43:21
【问题描述】:

我有这样的文件列表。

 List<File[]> fileList = new ArrayList<File[]>();

我需要将其转换为 File[] 之类的 File[] finalFiles

有什么方法可以将Files[] 的数组转换为单个File[]

【问题讨论】:

标签: java file


【解决方案1】:

使用 Stream API,您可以:

File[] finalFiles = fileList.stream().flatMap(Arrays::stream).toArray(File[]::new);

这会创建一个流,其中每个元素都是一个文件数组 (Stream&lt;File[]&gt;),平面映射每个文件数组(所以我们有一个 Stream&lt;File&gt;)并创建一个包含所有元素的新数组。

【讨论】:

    【解决方案2】:

    Java 7 解决方案:

            List<File[]> fileList = new ArrayList<File[]>();
            int count = 0;
            for (int i = 0; i < fileList.size(); i++){
                count += fileList.get(i).length;
            }
    
            File[] finalFiles = new File[count];
            int pointer = 0;
            for (int i = 0; i < fileList.size(); i++){
                System.arraycopy(fileList.get(i), 0, finalFiles, pointer, fileList.get(i).length);
                pointer += fileList.get(i).length;
            }
    

    【讨论】:

      【解决方案3】:

      这很好用:

      File[] finalFiles = (File[]) fileList.toArray(new File[fileList.size()]);
      

      【讨论】:

        猜你喜欢
        • 2013-06-12
        • 1970-01-01
        • 2017-02-24
        • 2013-02-13
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多