把一個數組合併成一個最小的數

學習下如何使用函數式編程和Comparator接口的使用,並瞭解下compareTo方法編程

public class test5 {app

public static void main(String[] args) {

    String s1="998";
	
    String s2="99";
	
    String c1=s1+s2;
	
    String c2=s2+s1;
	
    System.out.println(c1.compareTo(c2));
    System.out.println(c2.compareTo(c1));
    System.out.println(s1.compareTo(s2));
    System.out.println(s2.compareTo(s1));

int a[]=new int[]{1,34,45,34,454,33}; f(a);ide

fs(a);
}

public static void f(int nums[]){
    if(nums.length==0)
        return;

    int len =nums.length;

    String ss[]=new String[len];

    for(int i=0;i<len;i++)
        ss[i]=String.valueOf(nums[i]);

    Arrays.sort(ss, new Comparator<String>() {
        [@Override](https://my.oschina.net/u/1162528)
        public int compare(String o1, String o2) {
            String c1=o1+o2;
            String c2=o2+o1;
            return c1.compareTo(c2);
        }
    });

    StringBuffer s=new StringBuffer();
    for(int i=0;i<len;i++)
        s.append(ss[i]);
    System.out.println(s);

}

public static void fs(int nums[]){
    if(nums.length==0)
        return;

    int len =nums.length;

    String ss[]=new String[len];

    for(int i=0;i<len;i++)
        ss[i]=String.valueOf(nums[i]);

    Arrays.sort(ss,(s3,s4)->{
         String c1=s3+s4;
         String c2=s4+s3;
         return c1.compareTo(c2);
    });
     StringBuffer s=new StringBuffer();
    for(int i=0;i<len;i++)
        s.append(ss[i]);

    System.out.println(s);

}

}函數式編程

相關文章
相關標籤/搜索