【发布时间】:2018-05-02 21:13:24
【问题描述】:
我正在尝试按页码对对象列表进行排序(如果页面相等,则按位置),如下所示:
Collections.sort(arlToTort, new Comparator<UserDefinedLink>() {
@Override
public int compare(UserDefinedLink lhs, UserDefinedLink rhs) {
if(lhs.getPageNum() > rhs.getPageNum()){
return 0;
}else {
if(lhs.getPageNum() == rhs.getPageNum()){
double rhsY = getLinkYLocation(rhs.getLocationStart());
double lhsY = getLinkYLocation(lhs.getLocationStart());
if(rhsY > lhsY){
return 0;
}else{
return -1;
}
}else{
return -1;
}
}
}
});
当我设置一个小列表(少于 32 个项目)时,它可以正常工作,但是当列表多达 32 个项目时,排序不能正常工作,这是排序后的日志示例:
包含 31 项的列表:
D/getSortedListByPageNumber: Page: 2
D/getSortedListByPageNumber: Page: 4
D/getSortedListByPageNumber: Page: 4
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 14
D/getSortedListByPageNumber: Page: 14
D/getSortedListByPageNumber: Page: 20
D/getSortedListByPageNumber: Page: 25
D/getSortedListByPageNumber: Page: 26
D/getSortedListByPageNumber: Page: 26
D/getSortedListByPageNumber: Page: 28
D/getSortedListByPageNumber: Page: 28
D/getSortedListByPageNumber: Page: 30
D/getSortedListByPageNumber: Page: 31
D/getSortedListByPageNumber: Page: 34
D/getSortedListByPageNumber: Page: 35
D/getSortedListByPageNumber: Page: 39
D/getSortedListByPageNumber: Page: 42
D/getSortedListByPageNumber: Page: 44
包含 32 项的列表:
D/getSortedListByPageNumber: num of items : 32
D/getSortedListByPageNumber: Page: 4
D/getSortedListByPageNumber: Page: 4
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 26
D/getSortedListByPageNumber: Page: 26
D/getSortedListByPageNumber: Page: 28
D/getSortedListByPageNumber: Page: 28
D/getSortedListByPageNumber: Page: 30
D/getSortedListByPageNumber: Page: 34
D/getSortedListByPageNumber: Page: 39
D/getSortedListByPageNumber: Page: 44
D/getSortedListByPageNumber: Page: 2
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 9
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 10
D/getSortedListByPageNumber: Page: 14
D/getSortedListByPageNumber: Page: 14
D/getSortedListByPageNumber: Page: 20
D/getSortedListByPageNumber: Page: 25
D/getSortedListByPageNumber: Page: 31
D/getSortedListByPageNumber: Page: 35
D/getSortedListByPageNumber: Page: 42
【问题讨论】:
标签: android sorting arraylist collections