String转换排序问题

来源:互联网 发布:黑客社工库软件 编辑:程序博客网 时间:2024/06/17 19:46

项目中遇到了一个排序的问题!朋友介绍了一个简单粗暴的方法~
因为后台返回的数据,经过解析后放在了一个List集合中,里面的数据形式是这样的{“00851234”,“00891475”,“00521478”,“00365489”…….}
因为这个字符串的长度是固定不变的,所以可以强转成Int类型 在比较大小,工具类如下:

package com.deer.rcmeterreading.utils;import com.deer.rcmeterreading.entity.Collecter;import java.util.Comparator;/** * 从小到大 */public class SortSLUtil implements Comparator<Collecter> {    @Override    public int compare(Collecter o1, Collecter o2) {    //大于号表示从小到大排序,小于号则是从大到小排序        if (Integer.parseInt(o1.getNumber()) >Integer.parseInt(o2.getNumber())){            return 1 ;        }else if (o1.getNumber() == o2.getNumber()){            return 0 ;        }else {            return -1;        }    }}

说明:类中的getNumber()就是实体类中你需要排序的那个属性。我的项目中是需要排一个序列号。
然后怎么用呢?这样用:
代码中调用一个方法即可:

 Collections.sort(dataList , new SortSLUtil());

dataList就是你解析后得到的那个List集合,经过上面那句代码把这个List处理之后再去setAdapter即可。

上面工具类中的那个Integer.parseInt()方法根据实际需求变换,我的项目中的还有另一个一个时间格式yymmdd:hhmmss:此时就需要Long.parseLong()

0 0
原创粉丝点击