Class CompositeFileComparator

java.lang.Object
org.apache.commons.io.comparator.CompositeFileComparator
All Implemented Interfaces:
Serializable, Comparator<File>

public class CompositeFileComparator extends Object implements Serializable
Compare two files using a set of delegate file Comparator.

This comparator can be used to sort lists or arrays of files by combining a number other comparators.

Example of sorting a list of files by type (i.e. directory or file) and then by name:

       CompositeFileComparator comparator =
                       new CompositeFileComparator(
                                 (AbstractFileComparator) DirectoryFileComparator.DIRECTORY_COMPARATOR,
                                 (AbstractFileComparator) NameFileComparator.NAME_COMPARATOR);
       List<File> list = ...
       comparator.sort(list);
 
Since:
2.0
See Also:
  • Constructor Details

    • CompositeFileComparator

      public CompositeFileComparator(Comparator<File>... delegates)
      Create a composite comparator for the set of delegate comparators.
      Parameters:
      delegates - The delegate file comparators
    • CompositeFileComparator

      Create a composite comparator for the set of delegate comparators.
      Parameters:
      delegates - The delegate file comparators
  • Method Details

    • compare

      public int compare(File file1, File file2)
      Compare the two files using delegate comparators.
      Specified by:
      compare in interface Comparator<File>
      Parameters:
      file1 - The first file to compare
      file2 - The second file to compare
      Returns:
      the first non-zero result returned from the delegate comparators or zero.
    • toString

      public String toString()
      String representation of this file comparator.
      Returns:
      String representation of this file comparator
    • sort

      public File[] sort(File... files)
      Sort an array of files.

      This method uses Arrays.sort(Object[], Comparator) and returns the original array.

      Parameters:
      files - The files to sort, may be null
      Returns:
      The sorted array
      Since:
      2.0
    • sort

      public List<File> sort(List<File> files)
      Sort a List of files.

      This method uses Collections.sort(List, Comparator) and returns the original list.

      Parameters:
      files - The files to sort, may be null
      Returns:
      The sorted list
      Since:
      2.0