排序方法和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]);
经验分享 程序员 微信小程序 职场和发展