查询到的数据放入List<T>中,
T为实体类,假设有两个字段A和B
当 A==1时将其排序靠前,并按照B字段排序
也就说,A==1的数据,要在A!=1的数据前面,
A==1的数据还要再根据B字段排序,请不吝赐教。
public class TestClass { private int A; private int B; public int getA() { return A; } public void setA(int a) { A = a; } public int getB() { return B; } public void setB(int b) { B = b; } public static void main(String[] args) { List<TestClass> lists = new ArrayList<>(); Collections.sort(lists, new Comparator<TestClass>() { @Override public int compare(TestClass o1, TestClass o2) { //自定义你的排序规则就行了 return 0; } }); } }
规则我给出来了,自定义排序我就是不知道怎么写才提问的
@长风Jsonol: 因为你提问里的规则并没有给全,其实你只需要在compare里写if else判断就行了。
public int compare(TestClass o1, TestClass o2) { if (o2.getA() == 1) { if (o1.getA() == 1) { return o2.getB() - o1.getB(); } else { return 1; } } else { if (o1.getA() == 1) { return -1; } else {
//TODO A都不等1,怎么排序? return ; } } }
这个就是按照你给的条件排序的