首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将File[]列表转换为File[]

将File[]列表转换为File[]
EN

Stack Overflow用户
提问于 2016-09-21 15:43:22
回答 3查看 657关注 0票数 1

我有这样的File[]列表。

代码语言:javascript
复制
 List<File[]> fileList = new ArrayList<File[]>();

我需要将它转换成类似于这个File[] finalFilesFile[]

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-21 15:50:10

Java 7解决方案:

代码语言:javascript
复制
        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;
        }
票数 2
EN

Stack Overflow用户

发布于 2016-09-21 15:50:26

使用Stream API,您可以:

代码语言:javascript
复制
File[] finalFiles = fileList.stream().flatMap(Arrays::stream).toArray(File[]::new);

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

票数 4
EN

Stack Overflow用户

发布于 2019-11-17 07:59:15

这是完美的工作方式:

代码语言:javascript
复制
File[] finalFiles = (File[]) fileList.toArray(new File[fileList.size()]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39610382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档