排序方法和while(n-- > 0)
排序方法和while(n-- > 0)
list.sort() 集合排序方法
sort方法需要传递一个比较函数,函数需要实现Comparator接口中的方法,可以传递null,当传递null时为实现默认升序排序。
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);
}
}
public void demo(){
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(5);
list.add(2);
list.sort(null);
System.out.println(list);
}
下面的方法实现了Comparator中的compare方法,用于比较a(第一个比较数),b(第二个比较数),方法返回一个int类型的数据,当返回为负数时表示为b大于a,0和正数表示为相等和a小于b,直观的排序返回表现为(a-b)为升序,(b-a)为降序。 Comparator同样可以用于对象的比较。
public static void demo1(){
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(5);
list.add(2);
//lambdas
list.sort((a,b) -> b - a);
// list.sort(new Comparator<Integer>() {
// @Override
// public int compare(Integer o1, Integer o2) {
// return o2 - o1;
// }
// });
System.out.println(list);
}
while(n-- > 0)
等价于fori
int[] res = {
-1,1,-6,4,5,-6,1,4,1};
int i = 0;
while (res.length > ++i) System.out.println(res[i]);
下一篇:
N皇后问题的python实现
