Android利用Collections.sort()对Map里

作者: NapleC | 来源:发表于2015-10-28 10:49 被阅读1219次

    先上图,看下效果吧


    QQ截图20151028093026.png

    贴出主要代码

    Collections.sort(mList, new Comparator<TestBean>() {    
        @Override    
        public int compare(TestBean lhs, TestBean rhs) {    
            Double rScore = Double.parseDouble(rhs.getCount());  
            Double lScore = Double.parseDouble(lhs.getCount());  
            return (rScore.compareTo(lScore));   
        }    
    });  
    

    实现Comparator接口,重写int compare(Object o1, Object o2)方法;
    以及 model类

    public class TestBean {  
        private String count;  
        private String name;  
        public String getCount() {  
            return count;  
        }  
        public void setCount(String count) {  
            this.count = count;  
        }  
        public String getName() {  
            return name;  
        }  
        public void setName(String name) {  
            this.name = name;  
        }
    }  
    

    其他的就不贴了
    注:对于枚举类型的enum1.compareTo(enum2)是按照枚举类型值在定义时的先后顺序比较的,越后面的越大
    (这里顺便提下 ,对名字的排序

    Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序;
    System.out.println(Arrays.toString(names));

    2.对于汉字的排序:可以尝试使用ICU4J会得到更好的结果,特别是姓为某些生僻字的时候可以

    com.ibm.icu.text.Collator替换java.text.Collator
    com.ibm.icu.util.ULocale替换java.util.Locale


    很简单吧,如有不明白,请参照demo 这里点击下载

    相关文章

      网友评论

      • HuDP:我去... 骚年你居然有写 上回也是有这个需求 百度了一会才弄好 虽然很简单的东西
        NapleC:@HuDP 被坑的一手,哈哈

      本文标题:Android利用Collections.sort()对Map里

      本文链接:https://www.haomeiwen.com/subject/tugxhttx.html