数组排序
Arrays.sort(int[] a)
这种形式是对一个数组的所有元素进行排序,并且时按从小到大的顺序。
package Work; import java.util.*; public class Imcomplete { public static void main(String args[]) { int arr[]=new int [] {1,324,4,5,7,2}; Arrays.sort(arr); for(int x:arr) { System.out.print(x+" "); } } }
Arrays.sort(T[] arr,Comparator<T>c)用Comparator接口实现自定义顺序规则
实现Comparator接口实现降序
package AAA; import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Integer[] arr= {1,324,2,5,4,45,8}; Arrays.sort( arr, new Comparator<Integer>(){ //重写comparator方法 @Override public int compare(Integer o1, Integer o2) { // TODO Auto-generated method stub return o2-o1; //返回>0交换。 } }); System.out.println("您所输入的数组经过降序处理后为:"); for(int x:arr) { System.out.print(x+" "); } } }
如果return o1-o2;则实现升序
Arrays.sort(arr,(o11,o2)->o1-o2)
java引入Lambda简写comparator:Arrays.sort(arr,(o11,o2)->o1-o2)
实现升序
package AAA; import java.util.*; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Integer[] arr= {1,324,2,5,4,45,8}; Arrays.sort(arr,(o1,o2)->o1-o2); System.out.println("您所输入的数组经过升序处理后为:"); for(int x:arr) { System.out.print(x+" "); } } }
集合排序
Collections.sort(int []arr)
这种形式是对一个集合的所有元素进行排序,并且按从小到大的顺序。
package AAA; import java.util.*; public class Pasage { public static void main(String args[]) { List<Integer> list=new ArrayList(); list.add(3); list.add(1); list.add(8); list.add(2); Collections.sort(list); System.out.println("经过升序排列所得结果为:"); for(int x:list) { System.out.print(x+" "); } } }
使用Lambda实现降序
package AAA; import java.util.*; public class Pasage { public static void main(String args[]) { List<Integer> list=new ArrayList(); list.add(3); list.add(1); list.add(8); list.add(2); Collections.sort(list,(o1,o2)->o2-o1); System.out.println("经过降序排列所得结果为:"); for(int x:list) { System.out.print(x+" "); } } }
Lambda其实是对comparator进行重写。
package AAA; import java.util.*; public class Pasage { public static void main(String args[]) { List<Integer> list=new ArrayList(); list.add(3); list.add(1); list.add(8); list.add(2); Collections.sort(list,new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { // TODO Auto-generated method stub return o2-o1; } }); System.out.println("经过降序排列所得结果为:"); for(int x:list) { System.out.print(x+" "); } } }