Example usage for org.apache.commons.collections4.comparators ComparatorChain ComparatorChain

List of usage examples for org.apache.commons.collections4.comparators ComparatorChain ComparatorChain

Introduction

In this page you can find the example usage for org.apache.commons.collections4.comparators ComparatorChain ComparatorChain.

Prototype

public ComparatorChain(final List<Comparator<E>> list) 

Source Link

Document

Construct a ComparatorChain from the Comparators in the List.

Usage

From source file:com.caocao.util.CollectionUtils.java

/**
 * ??sortTheList ??List?/*from   ww  w  . j  a  va2  s. co  m*/
 * 
 * @param list
 * @param sortFields
 * @param sortOrder
 */
public static void sortTheList(List list, String[] sortFields, String sortOrder) {
    if (sortFields == null || sortFields.length <= 0) {
        return;
    }

    ArrayList sorts = new ArrayList();

    Comparator c = ComparatorUtils.NATURAL_COMPARATOR;
    c = ComparatorUtils.nullLowComparator(c); // ?null
    if (StringUtils.isEquals(sortOrder, CollectionUtils.SORT_ORDER_DESC)) {
        c = ComparatorUtils.reversedComparator(c); // ?
    }

    String sortField = null;
    for (int i = 0; i < sortFields.length; i++) {
        sortField = sortFields[i];
        if (StringUtils.isNotEmpty(sortField)) {
            sorts.add(new BeanComparator(sortField, c));
        }
    }

    ComparatorChain multiSort = new ComparatorChain(sorts);

    Collections.sort(list, multiSort);
}