数字的排序规则很简单,忽然想起字符串是怎么排序的呢?
//集合中对String就行排序, String[] array = { "abc", "abcd", "abca", "abdb", "acd" }; List<String> list =Arrays.asList(array); Collections.sort(list); list.forEach(a->System.out.print(a+" "));
打印结果:abc abca abcd abdb acd
default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator<E> i = this.listIterator(); for (Object e : a) { i.next(); i.set((E) e); } }
必须实现了Comparator接口,才能进行排序。
String的排序
使用 String.compareTo 方法:
compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序)
1、如果字符串相等返回值0
2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串)
3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度.