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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值