大数



public String solution(int[] numbers) {
       			String answer = "";
    			String[] result = new String[numbers.length];

    			for (int i = 0; i < numbers.length; i++) {
    				result[i] = String.valueOf(numbers[i]);
    			}

    			// 정렬
    			Arrays.sort(result, new Comparator<String>() {

    				@Override
    				public int compare(String o1, String o2) {

    					return ((o2 + o1).compareTo(o1 + o2));
    				}
    			});

    			//0만 있을 경우 [0,0,0,0] 0을 리턴
    			if(result[0].equals("0")) {
    				return "0";
    			}

    			for(int i = 0; i < result.length; i++) {
    				answer += result[i];
    			}
        return answer;
    }
これは比較器を学ぶことができる時間です.
これは難題です.
昇順:(o 2+o 1).compareTo(o1+o2)
降順:(o 1+o 2).compareTo(o2+o1)
ex)5と9を比較すると...
("9"+"5").compareTo("5"+"9")
95.compareTo(59)
Comp耕地:デフォルトの並べ替え基準を実施
Comparator:基本ソート基準を除き、他の基準でソートします.
Compareableを実施した後、CompareToメソッドを実施する.
Comparentを実装せずにオブジェクトの特定の変数に基づいてソートする方法があります.それはCompareatorです.
# compareTo()
:  文字列のアルファベット順序値を比較することで、対応するint値を返します.
A、Bを比較する場合
A=B:0戻り
A>B:1戻る
A# compare()
:  Comparatorインタフェースを実装する際に記述する方法.
内部実装に従ってint値を返し、2つのパラメータを超えない.
Collections.sort(list, new Comparator<String>(){

@Override
    public int compare(String o1, String o1){
    	if(o1 > o2) {return 1;}
        else if( o1 < o2 ) { return 1;}
        else {return 0;}
})