String转换排序问题

项目中遇到了一个排序的问题!朋友介绍了一个简单粗暴的方法~
因为后台返回的数据,经过解析后放在了一个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()

你可能感兴趣的:(String转换排序问题)