集合排序严谨简单实现

/**
 * 测试类
 */
public class RiskLimit implements Serializable {
    /**
     * 额度值
     */
    private Integer value;
    /**
     * 起始值
     */
    private Integer start;
    /**
     * 结束值
     */
    private Integer end;

    public Integer getValue() {
        return value;
    }

    public void setValue(Integer value) {
        this.value = value;
    }

    public Integer getStart() {
        return start;
    }

    public void setStart(Integer start) {
        this.start = start;
    }

    public Integer getEnd() {
        return end;
    }

    public void setEnd(Integer end) {
        this.end = end;
    }

    @Override
    public String toString() {
        return "RiskLimit{" +
                "start=" + start +
                ", end=" + end +
                ", value=" + value +
                '}';
    }
}

测试 假设根据集合中的Risklimit元素的start进行测试

import org.assertj.core.util.Lists;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

/**
 * 集合排序
 */
public class ListTest {

    @Test
    public void test() {
        RiskLimit riskLimit = new RiskLimit();
        riskLimit.setStart(300);
        riskLimit.setEnd(349);
        riskLimit.setValue(1000);
        RiskLimit riskLimit1 = new RiskLimit();
        riskLimit1.setStart(350);
        riskLimit1.setEnd(399);
        riskLimit1.setValue(2000);
        RiskLimit riskLimit2= new RiskLimit();
        riskLimit2.setStart(400);
        riskLimit2.setEnd(449);
        riskLimit2.setValue(3000);
        ArrayList<RiskLimit> riskLimits = Lists.newArrayList(riskLimit1, riskLimit, riskLimit2);
        System.out.println("未排序之前:riskLimits = " + riskLimits);
        Collections.sort(riskLimits, new Comparator<RiskLimit>() {
            @Override
            public int compare(RiskLimit o1, RiskLimit o2) {
                return o1.getStart().compareTo(o2.getStart());
            }
        });
        System.out.println("排序之后:riskLimits = " + riskLimits);
    }
}

输出结果:

未排序之前:riskLimits = [RiskLimit{start=350, end=399, value=2000}, RiskLimit{start=300, end=349, value=1000}, RiskLimit{start=400, end=449, value=3000}]

排序之后:riskLimits = [RiskLimit{start=300, end=349, value=1000}, RiskLimit{start=350, end=399, value=2000}, RiskLimit{start=400, end=449, value=3000}]
 

猜你喜欢

转载自blog.csdn.net/stackCSDN/article/details/83929749