把一个数组合并成一个最小的数

学习下如何使用函数式编程和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);

}

}函数式编程

相关文章
相关标签/搜索