【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 比較器Java
- 從java內建類和自定義類比較Comparable介面和Comparator介面實現排序的不同Java排序
- java比較日期大小Java
- Java和JavaSciprt比較Java
- java--BEAN比較JavaBean
- MVC、MVP和MVVM以及MVA比較MVCMVPMVVM
- JAVA中的Comparable介面和自定義比較器Java
- Java 8 Comparator: 列表排序Java排序
- [C++] 自定義C++比較器比較大小C++
- Java的BigDecimal比較大小JavaDecimal
- 開源Java物件比較器java-object-diff實戰講解Java物件Object
- Java 集合排序策略介面 ComparatorJava排序
- Java中List集合效能比較Java
- Java 字串比較、拼接問題Java字串
- Java字串建立方式比較Java字串
- Java Stream和Collection比較:何時以及如何從Java API返回Stream而不是集合Collection? - TomaszKiełbowiczJavaAPI
- Struggle Compare for mac(文字比較器)Mac
- 字串排序 (java comparator介面的使用)字串排序Java
- Java Comparable 和 Comparator 介面詳解Java
- Java基礎系列-Comparable和ComparatorJava
- java double、float型別的比較Java型別
- 雲原生Java與Golang比較 -lgorJavaGolang
- 【Java】浮點數相等性比較Java
- Java Bean Copy元件的效能比較JavaBean元件
- 常用的Java開發工具比較Java
- Java JIT與AOT效能比較 - foojayJava
- Java集合詳解3:Iterator,fail-fast機制與比較器JavaAIAST
- 定製排序和比較器排序排序
- 優先佇列的比較器佇列
- 定時器-輸出比較PWM定時器
- 海外各地區伺服器比較伺服器
- js 深比較和淺比較JS
- Java利用Comparator實現分組排序Java排序
- JAVA Comparator 自定義排序 原始碼分析Java排序原始碼
- Java™ 教程(比較字串和字串的部分)Java字串
- Java如何正確比較浮點數Java