1.Collections
Collections和Collection的区别:
Collections是java.utils下面的类,含有许多集合的相关操作的静态方法
Collections是java.utils下面的接口,是许多集合的上级接口
2.Collections的sort方法
sort方法用于对数据集合进行大小排序
/** * 使用给定的比较器对给定的列表进行排序。该算法稳定意味着相等的元素没有得到重新排序。 * * @throws ClassCastException if any element does not implement {@code Comparable}, * or if {@code compareTo} throws for any pair of elements. */ @SuppressWarnings("unchecked") public static <T> void sort(List<T> list, Comparator<? super T> comparator) { if (list.getClass() == ArrayList.class) { ArrayList<T> arrayList = (ArrayList<T>) list; T[] array = (T[]) arrayList.array; int end = arrayList.size(); Arrays.sort(array, 0, end, comparator); arrayList.modCount++; } else { T[] array = list.toArray((T[]) new Object[list.size()]); Arrays.sort(array, comparator); int i = 0; ListIterator<T> it = list.listIterator(); while (it.hasNext()) { it.next(); it.set(array[i++]); } } }
第一个参数为要排序的数据集,例如ArrayList<String> mDatas = new ArrayList<String>();
第二个参数为Comparator,它为一个抽象接口,这里我们new一个此类对象
Comparator comparator = new Comparator<String>() {
@Override
public int compare(String lhs, String rhs) {
// compareToIgnoreCase:进行比较,忽略大小写
// 如果参数字符串等于此字符串,则返回 0 值;如果按字典顺序此字符串小于字符串参数,则返回一个小于 0
// 的值;如果按字典顺序此字符串大于字符串参数,则返回一个大于 0 的值。
return lhs.compareToIgnoreCase(rhs);
}
};