数组排序
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 stubInteger[] arr= {1,324,2,5,4,45,8};Arrays.sort( arr, new Comparator<Integer>(){//重写comparator方法@Overridepublic int compare(Integer o1, Integer o2) {// TODO Auto-generated method stubreturn 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 stubInteger[] 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>() {@Overridepublic int compare(Integer o1, Integer o2) {// TODO Auto-generated method stubreturn o2-o1;}});System.out.println("经过降序排列所得结果为:");for(int x:list) {System.out.print(x+" ");}}}