Class NameFileComparator

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator<java.io.File>

    public class NameFileComparator
    extends AbstractFileComparator
    implements java.io.Serializable
    Compare the names of two files for order (see File.getName()).

    This comparator can be used to sort lists or arrays of files by their name either in a case-sensitive, case-insensitive or system dependant case sensitive way. A number of singleton instances are provided for the various case sensitivity options (using IOCase) and the reverse of those options.

    Example of a case-sensitive file name sort using the NAME_COMPARATOR singleton instance:

           List<File> list = ...
           NameFileComparator.NAME_COMPARATOR.sort(list);
     

    Example of a reverse case-insensitive file name sort using the NAME_INSENSITIVE_REVERSE singleton instance:

           File[] array = ...
           NameFileComparator.NAME_INSENSITIVE_REVERSE.sort(array);
     

    Since:
    1.4
    Version:
    $Id: NameFileComparator.java 1304052 2012-03-22 20:55:29Z ggregory $
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      NameFileComparator()
      Construct a case sensitive file name comparator instance.
      NameFileComparator​(IOCase caseSensitivity)
      Construct a file name comparator instance with the specified case-sensitivity.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(java.io.File file1, java.io.File file2)
      Compare the names of two files with the specified case sensitivity.
      java.lang.String toString()
      String representation of this file comparator.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Field Detail

      • NAME_COMPARATOR

        public static final java.util.Comparator<java.io.File> NAME_COMPARATOR
        Case-sensitive name comparator instance (see IOCase.SENSITIVE)
      • NAME_REVERSE

        public static final java.util.Comparator<java.io.File> NAME_REVERSE
        Reverse case-sensitive name comparator instance (see IOCase.SENSITIVE)
      • NAME_INSENSITIVE_COMPARATOR

        public static final java.util.Comparator<java.io.File> NAME_INSENSITIVE_COMPARATOR
        Case-insensitive name comparator instance (see IOCase.INSENSITIVE)
      • NAME_INSENSITIVE_REVERSE

        public static final java.util.Comparator<java.io.File> NAME_INSENSITIVE_REVERSE
        Reverse case-insensitive name comparator instance (see IOCase.INSENSITIVE)
      • NAME_SYSTEM_COMPARATOR

        public static final java.util.Comparator<java.io.File> NAME_SYSTEM_COMPARATOR
        System sensitive name comparator instance (see IOCase.SYSTEM)
      • NAME_SYSTEM_REVERSE

        public static final java.util.Comparator<java.io.File> NAME_SYSTEM_REVERSE
        Reverse system sensitive name comparator instance (see IOCase.SYSTEM)
      • caseSensitivity

        private final IOCase caseSensitivity
        Whether the comparison is case sensitive.
    • Constructor Detail

      • NameFileComparator

        public NameFileComparator()
        Construct a case sensitive file name comparator instance.
      • NameFileComparator

        public NameFileComparator​(IOCase caseSensitivity)
        Construct a file name comparator instance with the specified case-sensitivity.
        Parameters:
        caseSensitivity - how to handle case sensitivity, null means case-sensitive
    • Method Detail

      • compare

        public int compare​(java.io.File file1,
                           java.io.File file2)
        Compare the names of two files with the specified case sensitivity.
        Specified by:
        compare in interface java.util.Comparator<java.io.File>
        Parameters:
        file1 - The first file to compare
        file2 - The second file to compare
        Returns:
        a negative value if the first file's name is less than the second, zero if the names are the same and a positive value if the first files name is greater than the second file.
      • toString

        public java.lang.String toString()
        String representation of this file comparator.
        Overrides:
        toString in class AbstractFileComparator
        Returns:
        String representation of this file comparator