- 排序(Sort):
1、从小到大排序列表中的元素:Collections.sort(list)
compare(DownloadInfo o1, DownloadInfo o2)
o1-o2:表示降序排列
-o1+o2:表示升序排列;
如果是负数,该元素就向前移;
private void orderByTime(List<DownloadInfo> completeImageList){
Collections.sort(completeImageList, new Comparator<DownloadInfo>() {
@Override
public int compare(DownloadInfo o1, DownloadInfo o2) {
if(TextUtils.isEmpty(o1.getStartTime())||TextUtils.isEmpty(o2.getStartTime())){
return 0;
}
Long i = -Long.parseLong(o1.getStartTime()) + Long.parseLong(o2.getStartTime());
if (i==0){
return 0;
}else if (i<0){
return -1;
}else {
return 1;
}
}
});
}
也可写成
public static void orderByTime(List<DownloadInfo> completeImageList,boolean isSort){
Collections.sort(completeImageList, new Comparator<DownloadInfo>() {
@Override
public int compare(DownloadInfo o1, DownloadInfo o2) {
if(TextUtils.isEmpty(o1.getStartTime())||TextUtils.isEmpty(o2.getStartTime())){
return 0;
}
if (isSort){
return -o1.getStartTime().compareTo(o2.getStartTime());
}else {
return o1.getStartTime().compareTo(o2.getStartTime());
}
}
});
}
2、可以更加强大的定义自己的比较器:Collection.sort(list,new MyComparator();
public class CreateItemInfo implements Serializable, Comparable<CreateItemInfo> {
@Override
public int compareTo(CreateItemInfo info) {
if(this.complete_time > info.complete_time){
return -1;
}else if(this.complete_time < info.complete_time){
return 1;
}
return 0;
}
- 交换(Swap)
Collections.swap(list,0,1);
0:表示要交换的元素下标,1:表示被交换元素的下标;
- 反转(Reverse)
列表中数据顺序变反
- 混排(Shuffling)
列表中的数据随机排序
- 替换所有的元素(Fill)
Collections.fill(list,11)将list列表中的元素都设置为:11
- 拷贝(Copy)
Collections.copy(list,list2);list copy到list2
- 返回Collections中最小的元素(min)
collections.min(list);
- 返回Collection中的最大元素(max)
collection.max(list);
- lastIndexOfSubList
返回指定源列表中最后一次出现指定表列表的起始位置
int count = Collection.lastIndexOfSubList(list,li);
- IndexOfSubList
返回指定源列表第一次出现指定目标列表的起始位置
int count= Collections.indexOfSubList(list,li);