Class ExtensionFileComparator
- java.lang.Object
-
- org.apache.commons.io.comparator.ExtensionFileComparator
-
- All Implemented Interfaces:
- Serializable, Comparator< File>
public class ExtensionFileComparator extends Object implements Serializable
Compare the file name extensions for order (seeFilenameUtils.getExtension(String)
).This comparator can be used to sort lists or arrays of files by their file extension either in a case-sensitive, case-insensitive or system dependent 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 extension sort using the
EXTENSION_COMPARATOR
singleton instance:List<File> list = ... ((AbstractFileComparator) ExtensionFileComparator.EXTENSION_COMPARATOR).sort(list);
Example of a reverse case-insensitive file extension sort using the
EXTENSION_INSENSITIVE_REVERSE
singleton instance:File[] array = ... ((AbstractFileComparator) ExtensionFileComparator.EXTENSION_INSENSITIVE_REVERSE).sort(array);
- Since:
- 1.4
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field and Description static Comparator<File>
EXTENSION_COMPARATOR
Case-sensitive extension comparator instance (seeIOCase.SENSITIVE
)static Comparator<File>
EXTENSION_INSENSITIVE_COMPARATOR
Case-insensitive extension comparator instance (seeIOCase.INSENSITIVE
)static Comparator<File>
EXTENSION_INSENSITIVE_REVERSE
Reverse case-insensitive extension comparator instance (seeIOCase.INSENSITIVE
)static Comparator<File>
EXTENSION_REVERSE
Reverse case-sensitive extension comparator instance (seeIOCase.SENSITIVE
)static Comparator<File>
EXTENSION_SYSTEM_COMPARATOR
System sensitive extension comparator instance (seeIOCase.SYSTEM
)static Comparator<File>
EXTENSION_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (seeIOCase.SYSTEM
)
Constructor Summary
Constructors Constructor and Description ExtensionFileComparator()
Construct a case sensitive file extension comparator instance.ExtensionFileComparator(IOCase caseSensitivity)
Construct a file extension comparator instance with the specified case-sensitivity.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description int
compare(File file1, File file2)
Compare the extensions of two files the specified case sensitivity.File[]
sort(File... files)
Sort an array of files.List<File>
sort(List<File> files)
Sort a List of files.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
comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Detail
EXTENSION_COMPARATOR
public static final Comparator<File> EXTENSION_COMPARATOR
Case-sensitive extension comparator instance (seeIOCase.SENSITIVE
)
EXTENSION_REVERSE
public static final Comparator<File> EXTENSION_REVERSE
Reverse case-sensitive extension comparator instance (seeIOCase.SENSITIVE
)
EXTENSION_INSENSITIVE_COMPARATOR
public static final Comparator<File> EXTENSION_INSENSITIVE_COMPARATOR
Case-insensitive extension comparator instance (seeIOCase.INSENSITIVE
)
EXTENSION_INSENSITIVE_REVERSE
public static final Comparator<File> EXTENSION_INSENSITIVE_REVERSE
Reverse case-insensitive extension comparator instance (seeIOCase.INSENSITIVE
)
EXTENSION_SYSTEM_COMPARATOR
public static final Comparator<File> EXTENSION_SYSTEM_COMPARATOR
System sensitive extension comparator instance (seeIOCase.SYSTEM
)
EXTENSION_SYSTEM_REVERSE
public static final Comparator<File> EXTENSION_SYSTEM_REVERSE
Reverse system sensitive path comparator instance (seeIOCase.SYSTEM
)
Constructor Detail
ExtensionFileComparator
public ExtensionFileComparator()
Construct a case sensitive file extension comparator instance.
ExtensionFileComparator
public ExtensionFileComparator(IOCase caseSensitivity)
Construct a file extension comparator instance with the specified case-sensitivity.- Parameters:
-
caseSensitivity
- how to handle case sensitivity, null means case-sensitive
Method Detail
compare
public int compare(File file1, File file2)
Compare the extensions of two files the specified case sensitivity.- Specified by:
-
compare
in interfaceComparator<File>
- Parameters:
-
file1
- The first file to compare -
file2
- The second file to compare - Returns:
- a negative value if the first file's extension is less than the second, zero if the extensions are the same and a positive value if the first files extension is greater than the second file.
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
Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.