Details
-
Improvement
-
Status: Patch Available
-
Minor
-
Resolution: Unresolved
-
2.7.3, 3.0.0-alpha3
-
None
-
None
-
Patch
Description
org.apache.hadoop.fs.FileSystem.listStatus(ArrayList<FileStatus>, Path, PathFilter)
/* * Filter files/directories in the given path using the user-supplied path * filter. Results are added to the given array <code>results</code>. */ private void listStatus(ArrayList<FileStatus> results, Path f, PathFilter filter) throws FileNotFoundException, IOException { FileStatus listing[] = listStatus(f); if (listing == null) { throw new IOException("Error accessing " + f); } for (int i = 0; i < listing.length; i++) { if (filter.accept(listing[i].getPath())) { results.add(listing[i]); } } }
org.apache.hadoop.fs.FileSystem.listStatus(Path, PathFilter)
public FileStatus[] listStatus(Path f, PathFilter filter) throws FileNotFoundException, IOException { ArrayList<FileStatus> results = new ArrayList<FileStatus>(); listStatus(results, f, filter); return results.toArray(new FileStatus[results.size()]); }
We can be smarter about this:
- Use enhanced for-loops
- Optimize for the case where there are zero files in a directory, save on object instantiation
- More encapsulated design
Attachments
Attachments
Issue Links
- duplicates
-
HADOOP-14477 FileSystem Simplify / Optimize listStatus Method
- Patch Available