【Java】Collection.sort以及比較器Comparator
偷偷記住
從大到小(2-->1)
@Override
public int compare(Integer o1, Integer o2){
return o2.compareTo(o1);
}
不多說,先來道題8:
輸入一個正整數陣列,把陣列裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。
- 例如輸入陣列{3,32,321},則列印出這三個數字能排成的最小數字為321323。
import java.util.ArrayList;
public class Solution {
public String PrintMinNumber(int [] numbers) {
}
}
答案
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Solution {
public String PrintMinNumber(int [] numbers) {
int n;
String s="";
ArrayList<Integer> list= new ArrayList<Integer>();
n=numbers.length;
for(int i=0;i<n;i++){
list.add(numbers[i]);
}
Collections.sort(list, new Comparator<Integer>(){
public int compare(Integer str1,Integer str2){
//加""轉換成字串
String s1=str1+""+str2;
String s2=str2+""+str1;
return s1.compareTo(s2);
}
});
for(int j:list){
s+=j;
}
return s;
}
}
首先來看一下Comparator<T>
**這個題目中,我們要讓字串連起來之後升序排列,所以第一個引數應該小於第二個引數(返回負整數)
而String類中實現了介面Comparable(此方法中只有一個方法compareTo(String a, String b))
這個方法的實現非常簡單。首先一個一個字元判斷,如果有不相等的,就返回ASCII的差;如果都相等(也就是其中一個字元創長度大於等於另一個),就返回長度差。
相關文章
- 比較器-Comparable和Comparator
- Java Comparable排序介面和Comparator比較器介面Java排序
- Java 中 Comparable 和 Comparator 比較Java
- java容器之List+Comparable與Comparator比較Java
- java8-Lambda中比較器Comparator的使用Java
- Java 比較器Java
- 不同Java垃圾回收器的比較Java
- java 中日期比較以及日期的增加和減少Java
- Java 8 比較器:如何對 List 排序Java排序
- 不同的Java垃圾回收器的比較Java
- JAVA字串比較Java字串
- MVC、MVP和MVVM以及MVA比較MVCMVPMVVM
- java比較日期大小Java
- Java和JavaSciprt比較Java
- java--BEAN比較JavaBean
- [java之list比較]Java
- JAVA IO效能比較Java
- 從java內建類和自定義類比較Comparable介面和Comparator介面實現排序的不同Java排序
- [C++] 自定義C++比較器比較大小C++
- Java Integer型別比較Java型別
- Java 兩個日期比較Java
- JAVA中的Comparable介面和自定義比較器Java
- 瀏覽器核心比較瀏覽器
- 開源Java物件比較器java-object-diff實戰講解Java物件Object
- Java 8 Comparator: 列表排序Java排序
- Java Comparable 與 ComparatorJava
- Java中List集合效能比較Java
- Java 字串比較、拼接問題Java字串
- Java字串建立方式比較Java字串
- Java的BigDecimal比較大小JavaDecimal
- JavaScript 與 Java、PHP 的比較JavaScriptPHP
- Jetty 的工作原理以及與 Tomcat 的比較JettyTomcat
- Java 集合排序策略介面 ComparatorJava排序
- java的Comparator和ComparableJava
- 雲原生Java與Golang比較 -lgorJavaGolang
- Java Bean Copy元件的效能比較JavaBean元件
- Java JIT與AOT效能比較 - foojayJava
- 常用的Java開發工具比較Java