有实体类CxCadreSituationDTO,其中有属性orgType和estab,现在有一个CxCadreSituationDTO对象列表,将对象列表按照orgType顺序为{2,3,1}的顺序排序,estab升序排序
时间: 2023-12-10 22:37:21 浏览: 55
根据对象属性将对象排序
可以使用Java的Comparator来实现这个排序逻辑。
首先,定义一个实现Comparator接口的类,重写compare方法:
```java
import java.util.Comparator;
public class CxCadreSituationComparator implements Comparator<CxCadreSituationDTO> {
@Override
public int compare(CxCadreSituationDTO o1, CxCadreSituationDTO o2) {
int orgType1 = o1.getOrgType();
int orgType2 = o2.getOrgType();
// 比较orgType
if (orgType1 != orgType2) {
if (orgType1 == 2) {
return -1;
} else if (orgType1 == 3) {
if (orgType2 == 2) {
return 1;
} else {
return -1;
}
} else if (orgType1 == 1) {
return 1;
}
}
// 如果orgType相同,比较estab
int estab1 = o1.getEstab();
int estab2 = o2.getEstab();
return Integer.compare(estab1, estab2);
}
}
```
在compare方法中,首先比较orgType的大小,按照{2,3,1}的顺序排列。如果orgType相同,则比较estab的大小,按照estab升序排列。
然后,在排序时使用这个Comparator:
```java
List<CxCadreSituationDTO> list = new ArrayList<>();
// ... 添加元素
Collections.sort(list, new CxCadreSituationComparator());
```
这样,就可以按照要求的顺序和方式对CxCadreSituationDTO对象列表进行排序了。
阅读全文