排序方法和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实现