一、
例:按字典顺序对字符串进行排序
package demo6;
import java.util.ArrayList;
import java.util.Collections;
public class Test1{
public static void main(String args[]){
ArrayList<String> strs=new ArrayList<>();
strs.add("xxxx");
strs.add("aaa");
strs.add("bbbb");
Collections.sort(strs);//Collections用于List,Arrays用于数组
for(String s:strs){
System.out.println(s);
}
}
}
二、
public interface Comparator<T>{
int compare(T first,T second);
}
可以定义一个实现Comparator<String>的类:
class LengthComparator implements Comparator<String>{
public int compare(String first,String second){
return first.length()-second.length();
}
}
例:按长度递增顺序对字符串进行排序
package demo6;
import java.util.Arrays;
import java.util.Comparator;
public class Test1{
public static void main(String args[]){
String str1="xxxx";
String str2="aaa";
String str3="b";
LengthComparator len = new LengthComparator();
String[] strings=new String[3];
strings[0]=str2;
strings[1]=str1;
strings[2]=str3;
Arrays.sort(strings, len);
for(String s:strings){
System.out.println(s);
}
}
}
class LengthComparator implements Comparator<String>{
public int compare(String first,String second){
return first.length()-second.length();
}
}
或者使用lambda表达式:
import java.util.Arrays;
import java.util.Comparator;
public class Test1{
public static void main(String[]args) throws Exception{
String[] strs=new String[]{"xxxx","aa","bbb"};
Comparator<String> comparator=(String first,String second)->{return first.length()-second.length();};
Arrays.sort(strs, comparator);
System.out.println(Arrays.toString(strs));
}
}