java compareTo方法增加中英文排序
默认排序(hash值排序)
java代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class T {
public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("WWW");
list.add("AAAA");
list.add("中国");
list.add("日本");
Collections.sort(list,(o1,o2)->{
return o1.compareTo(o2);
});
for (String str : list) {
System.out.println(str);
}
}
}
运行结果
AAAA
WWW
中国
日本
支持中英文排序
字符串集合排序
java代码
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
public class T {
public static void main(String[] args) {
String[] a = new String[] { "WWW", "AAAA", "中国", "日本" };
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
Arrays.sort(a, com);
for (String string : a) {
System.out.println(string);
}
}
}
运行结果
AAAA
WWW
日本
中国
对象集合排序
java代码-对象实现Comparable接口
import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
public class Test implements Comparable<Test> {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(StorageDirectory o) {
Comparator<Object> com = Collator.getInstance(Locale.CHINA);
return ((Collator) com).compare(this.name,o.getName()); //升序
}
}
java代码-main
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import Test;
public class T {
public static void main(String[] args) {
List<Test> a = new ArrayList<Test>();
Test test1= new Test();
test1.setName("中国");
a.add(test1);
Test test2 = new Test();
test2 .setName("日报");
a.add(test2 );
Test test3 = new Test();
test3.setName("AAA");
a.add(test3);
Test test4 = new Test();
test4.setName("WWW");
a.add(test4);
Collections.sort(a);
for (Test test : a) {
System.out.println(test.getName());
}
}
}
运行结果
AAA
WWW
日报
中国