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 of other comparators.

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

       CompositeFileComparator comparator = new CompositeFileComparator(
           DirectoryFileComparator.DIRECTORY_COMPARATOR,
           NameFileComparator.NAME_COMPARATOR);
       List<File> list = ...
       comparator.sort(list);
 

Deprecating Serialization

Serialization is deprecated and will be removed in 3.0.

Since:
2.0
See Also:
  • Constructor Details

    • CompositeFileComparator

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

      Constructs 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)
      Compares 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)
      Sorts 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)
      Sorts a List of files.

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

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