Java Reference
In-Depth Information
These methods take a Comparator and return a null-friendly Comparator place the null values first or last.
// Sort using first name, then last name, placing null values first
Comparator nullFirstComparator = Comparator.nullsFirst(firstLastComparator);
Arrays.sort(persons, nullFirstComparator);
Listing 17-37 uses an object of this class to sort objects of the ComparablePerson class. As the output indicates,
this time you are able to sort a list of comparable persons based on their first names and last names. If you want to sort
a list of objects of the ComparablePerson in any other order, you will need to use an object of the Comparator interface
that imposes the desired order.
Listing 17-37. A Test Class That Uses a Comparator Object to Sort ComparablePerson Objects
// ComparablePersonTest2.java
package com.jdojo.interfaces;
import java.util.Arrays;
import java.util.Comparator;
public class ComparablePersonTest2 {
public static void main(String[] args) {
ComparablePerson[] persons = new ComparablePerson[]{
new ComparablePerson("John", "Jacobs"),
new ComparablePerson("Jeff", "Jacobs"),
new ComparablePerson("Wally", "Inman")};
System.out.println("Original array...");
print(persons);
// Sort using first name
Comparator<ComparablePerson> fnComparator = new FirstNameComparator();
Arrays.sort(persons, fnComparator);
System.out.println("\nAfter sorting on first name...");
print(persons);
// Sort using last name
Comparator<ComparablePerson> lnComparator = new LastNameComparator();
Arrays.sort(persons, lnComparator);
System.out.println("\nAfter sorting on last name...");
print(persons);
// Sort using first name, then last name
Comparator<ComparablePerson> firstLastComparator =
fnComparator.thenComparing(lnComparator);
Arrays.sort(persons, firstLastComparator);
System.out.println("\nAfter sorting on first, then last name...");
print(persons);
// Sort using first name, then last name in reversed order
Comparator<ComparablePerson> firstLastReverseComparator =
firstLastComparator.reversed();
 
Search WWH ::




Custom Search