/** * 测试类 */ 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}]