java 可排序的数值得字符串,转化成list集合后进行的排序的几种方法

场景:可排序的数值得字符串,转化成list集合后进行的排序的几种方法(不一定有用,细细品)

代码:

public class ListSort {

    public static void main(String[] args) {
        String str = "24,48,72,96,120,10,150";
        sort1(str);//输出的结果是:10 120 150 24 48 72 96 
        System.out.print("\n");
        sort2(str);//输出的结果是:10 24 48 72 96 120 150 
        System.out.print("\n");
        sort3(str);//输出的结果是:10 24 48 72 96 120 150 
    }

    //第一种方式
    public static void sort1(String str){
        String[] strArr = str.split(",");
        Arrays.sort(strArr);//java自带的排序方法
        for (String string : strArr) {
            System.out.print(string+" ");
        }
    }
    
    //第二种方式
    public static void sort2(String str){
        String[] strArr = str.split(",");
        List<String> listArr = Arrays.asList(strArr);
        Collections.sort(listArr,new Comparator<String>(){
            public int compare(String o1, String o2) {
                //前者大于后者
                if(Integer.parseInt(o1) > Integer.parseInt(o2)){
                    return 1;
                }
                //后者大于前者
                if(Integer.parseInt(o1) < Integer.parseInt(o2)){
                    return -1;
                }
                //两者相等
                return 0;
            }
            
        });
        for(String string : listArr){
            System.out.print(string+" ");
        }
    }
    
    //第三种方式
    public static void sort3(String str){
        String[] arr = str.split(",");
        int size = arr.length;
        for (int i = 0; i < size - 1; i++) {
            for(int j = i+1;j<arr.length;j++){
                if(Integer.parseInt(arr[i]) > Integer.parseInt(arr[j])){
                    String temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        for(String string : arr){
            System.out.print(string+" ");
        }
    }
}

 

posted @ 2020-03-11 16:02  凌晨四点的少年  阅读(773)  评论(0编辑  收藏  举报