1.字典排序定义
字典排序是一种对于随机变量形成序列的排序方法,其方法是按照字母排列顺序,或数字顺序由小到大形成的的序列。
2.代码实现
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.*;
public class 字典排序1 {
public static void sort(){
ArrayList<String> arr = new ArrayList<>();
arr.add("red");
arr.add("8");
arr.add("pink");
arr.add("5");
arr.add("black");
arr.add("晨");
arr.add("write");
arr.add("张");
arr.add("7");
arr.add("purple");
arr.add("哗哗");
Collections.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
try {
String str1 = new String(o1.toString().getBytes("GB2312"),"ISO-8859-1");
String str2 = new String(o2.toString().getBytes("GB2312"),"ISO-8859-1");
return str1.compareTo(str2);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return 0;
}
});
for(int i = 0;i < arr.size();i++){
System.out.println(arr.get(i));
}
}
public static void main(String[] args) {
sort();
}
}
输出结果:
a.其中 compareTo 是从首字母开始比较,直到找到两个不同的字母,返回字母的编码差值(例如:“a".compareTo(“b”)的结果就是返回-1)
b.String str1 = new String(o1.toString().getBytes(“GB2312”),“ISO-8859-1”);
(1)getBytes()、getBytes(encoding)函数的作用是使用系统默认或者指定的字符集编码方式,将字符串编码成字节数组。
(2)(“GB2312”),“ISO-8859-1”)这里是先以GB2312解码,再以ISO-8859-1编码,以防止中文乱码