2016-09-21 22 views
1

このようなファイル[]のリストがあります。ファイル[]のリストをファイル[]に変換する

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

私はこのFile[] finalFilesようFile[]なものに変換する必要があります。

我々はシングルFile[]

+0

この質問は既に回答済みです: http://stackoverflow.com/questions/11464706/how-to-convert-arraylist-to-string-in-java-arraylist-contains-vo-objects – Max

答えて

2

のJava 7の溶液にFiles[]の配列を変換することができますどのような方法があります:ストリームAPIを使用して

 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; 
     } 
4

、あなたが持っている可能性があり:

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

は、これは、各要素がファイルの配列(Stream<File[]>)であるストリームを作成し、各ファイルの配列をフラットにマップします(したがって、Stream<File>)、すべての要素の新しい配列を作成します。

関連する問題