list對數字,字母,中文的排序

使用Collections.sort()方法對於英文字母排序,是先比較首字母,首字母相同比較後面字母。

使用Collections.sort()方法對於中文字符進行排序,並不是按照中文拼音的順序,原因是Collator類執行的是區分語言環境的String比較。可調用Collator的靜態方法getInstance()來獲取所需語言環境的Collator對象

List<Integer> integer = Arrays.asList(2,6,6,3,1,0,6,4,3,7,3);
Collections.sort(integer);
System.out.println(integer);

List<String> strings = Arrays.asList("ce","ca","ced","ceb","ch","chw","aile");
Collections.sort(strings);
System.out.println(strings);

List<String> citys = Arrays.asList("包頭", "北京", "常州", "廣州", "合肥", "惠州", "鄭州", "長沙", "中山", "珠海");
Collections.sort(citys, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return Collator.getInstance(Locale.CHINA).compare(o1,o2);
    }
});
System.out.println(citys);

特殊情況需要將某幾個元素放在最前面,返回1不調換位置,返回-1調換位置

List<String> citys = Arrays.asList("包頭", "北京", "常州", "廣州", "合肥", "惠州", "鄭州", "長沙", "中山", "珠海");
Collections.sort(citys, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        int compare = Collator.getInstance(Locale.CHINA).compare(o1, o2);
        if ("深圳".equals(o1))
            compare = -1;
        if ("深圳".equals(o2))
            compare = 1;
        if ("上海".equals(o1))
            compare = -1;
        if ("上海".equals(o2))
            compare = 1;
        if ("北京".equals(o1))
            compare = -1;
        if ("北京".equals(o2))
            compare = 1;
        return compare;
    }
});
System.out.println(citys);

發佈了260 篇原創文章 · 獲贊 57 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章